ホームページ  >  記事  >  バックエンド開発  >  golangの.aファイルとは何ですか

golangの.aファイルとは何ですか

尚
オリジナル
2019-12-16 15:44:585591ブラウズ

golangの.aファイルとは何ですか

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

pkgqrcode.h

Golang の詳細については、

golang に注意してください。チュートリアルコラム。

以上がgolangの.aファイルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。