.un fichier est généré pendant le processus de compilation. Chaque package générera un fichier .a correspondant Go détermine d'abord si le code source du package est If. il y a des changements, sinon le fichier .a ne sera pas recompilé, ce qui peut accélérer le processus.
Générer un fichier .a (le fichier .h sera également généré automatiquement)
Créer le fichier pkgqrcode.go
package mainimport "C"import ( //"fmt" "github.com/tuotoo/qrcode" "os")//export GetQrcodeStringfunc GetQrcodeString(cstring *C.char) *C.char { //func GetQrcodeString() *C.char { path := C.GoString(cstring) //path := "qrcode.png" fi, err := os.Open(path) if err != nil { //fmt.Println(err.Error()) return C.CString(path) } defer fi.Close() qrmatrix, err := qrcode.Decode(fi) if err != nil { //fmt.Println(err.Error()) return C.CString(path) } //fmt.Println(qrmatrix.Content) //return C.Cstring(qrmatrix.Content) gostr := qrmatrix.Content cstr := C.CString(gostr) return cstr}func main() {}
Le but de l'import" C" est lorsque vous utilisez la fonction C dans le code go
vous devez ajouter //export GetQrcodeString pour générer le fichier .h (je ne sais pas quoi !!)
C.GoString(cstring) Convertir une chaîne C en chaîne Go
C.CString(gostr) Convertir une chaîne Go en chaîne C
Étapes de compilation
Générer une commande de fichier .a (entrez le répertoire de code pkgqrcode.go ) Exécution :
go build -buildmode=c-archive -o pkgqrcode.a pkgqrcode.go
Générer des résultats
pkgqrcode.a
pkgqrcode.h
Pour plus de connaissances sur Golang, veuillez faire attention à tutoriel golangColonne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!