.a ファイルはコンパイル プロセス中に生成されます。各パッケージは対応する .a ファイルを生成します。Go コンパイルするときは、最初に、パッケージに変更がある場合、変更されていない場合、.a ファイルは再コンパイルされないため、プロセスが高速化されます。
.a ファイルの生成 (.h ファイルも自動生成されます)
ファイル 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() {}
の関数 import "C " は Go コードで C 関数を使用する場合
.h ファイルを生成するために //export GetQrcodeString を追加する必要があります (何が何だかわかりません!!)
C.GoString(cstring) C 文字列を go String に変換します
C.CString(gostr) go 文字列を C 文字列に変換します
コンパイル手順
.a ファイル コマンドを生成します (pkgqrcode.go コード ディレクトリを入力します) ) 実行:
go build -buildmode=c-archive -o pkgqrcode.a pkgqrcode.go
Generate results
##pkgqrcode.aGolang の詳細については、pkgqrcode.h
golang に注意してください。チュートリアルコラム。
以上がgolangの.aファイルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。