.a-Datei wird während des Kompilierungsprozesses generiert. Go ermittelt zunächst, ob der Quellcode des Pakets ist Wenn keine Änderungen vorliegen, wird die .a-Datei nicht neu kompiliert, was den Vorgang beschleunigen kann.
.a-Datei generieren (.h-Datei wird ebenfalls automatisch generiert)
Erstellen Sie die Datei 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() {}
Der Zweck des Imports " C" ist: Wenn Sie die C-Funktion im Go-Code verwenden
müssen Sie //export GetQrcodeString hinzufügen, um eine .h-Datei zu generieren (weiß nicht was!!)
C.GoString(cstring) C-String in go-String konvertieren
C.CString(gostr) Go-String in C-String konvertieren
Kompilierungsschritte
Einen Dateibefehl generieren (Codeverzeichnis pkgqrcode.go eingeben). ) Ausführung:
go build -buildmode=c-archive -o pkgqrcode.a pkgqrcode.go
Ergebnisse generieren
pkgqrcode.a
pkgqrcode.h
Für weitere Golang-Kenntnisse achten Sie bitte auf Golang-TutorialSpalte.
Das obige ist der detaillierte Inhalt vonWas ist eine .a-Datei in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!