コンパイルgolang使用の静的ファイル(.Aファイル)

プログラムの一般的なプロセス:編集、コンパイル、リンク、実行します。プロジェクトのソースコードのgolangがオープンソースであるため、我々はめったにコンパイル、リンクの問題に世話をしていません。プロジェクト内の非オープンソースのサードパーティのライブラリの場合、この時間はアウトパックどのようにプログラムのexeファイルの実行可能?

静的ファイルを使用してコンパイルgolang

使用行くツールのコンパイル

静的ファイルへのリンクを使用してgolang

ゴーツールのリンクを使用します

//staticpkg/print.go
package staticpkg

import "fmt"

func Hello() {
    fmt.Println("hello")
}

//运行 go install 会生成对应的.a文件

//修改print.go文件,去掉函数实现,
//main/main.go
package main

import (
    "staticpkg"
)

func main() {
    staticpkg.Hello()
}

//使用tool的compile命令编译当前项目
go tool compile -I $GOPATH/windows_amd64 main.go 
//会生成一个main.o文件

//使用tool的link命令生成可执行文件
go tool link -o main.exe -L $GOPATH/windows_amd64 main.go
//会生成一个main.exe程序,直接运行会输出hello

//如果直接go run main.go此时没有任何输出

ただ、対応する.Aファイルを持つように、静的ファイル(.Aファイル)のコンパイルとリンクを使用している場合。.Aファイルができますが、開発のため.Aファイルだけでなく、対応する宣言ファイルを使用したい場合、パッケージにいくつかの定義を表示することができません。

https://github.com/golangaccount/exportheadは、単純な輸出品目は、非輸出品目で実装の詳細とタイプまたはインタフェース機能を削除したパッケージの宣言を、行くです

おすすめ

転載: www.cnblogs.com/zp900704/p/11907504.html