Maison  >  Article  >  développement back-end  >  Qu'est-ce qu'un fichier .a dans Golang

Qu'est-ce qu'un fichier .a dans Golang

尚
original
2019-12-16 15:44:585591parcourir

Qu'est-ce qu'un fichier .a dans Golang

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn