Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist eine .a-Datei in Golang?

Was ist eine .a-Datei in Golang?

尚
Original
2019-12-16 15:44:585515Durchsuche

Was ist eine .a-Datei in Golang?

.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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn