golang跨平台編譯

2021-06-28 06:15:29 字數 1148 閱讀 8189

golang中跨平台交叉編譯涉及兩個重要的環境變數:goos和goarch,分別代表target host os和target host arch,如果沒有顯式設定這些環境變數,我們通過go env可以看到go編譯器眼中這兩個環境變數的當前值:

go env

goarch="amd64"

gobin="/home/work/software/go/bin"

goexe=""

gohostarch="amd64" //主機arch

gohostos="linux" //主機host

goos="linux"

gopath="/home/work/software/go/src/pkg:/home/work/develop/git/content_filter:/home/work/develop/git/content_filter/.koala"

gorace=""

goroot="/home/work/software/go"

gotooldir="/home/work/software/go/pkg/tool/linux_amd64"

go15vendorexperiment="1"

cc="gcc"

gogccflags="-fpic -m64 -pthread -fmessage-length=0"

cxx="g++"

cgo_enabled="1"

如果想要跨平台編譯go程式,只需在build的時候制定目標主機的os和arch,如下例子所示所示

goos=windows goarch=386

go build -o hello.exe hello.go

其中二者可以設定如下引數:

$goos 	$goarch 	

darwin 386

darwin amd64

freebsd 386

freebsd amd64

linux 386

linux amd64

linux arm incomplete

windows 386 incomplete

如果想要編譯其他平台的可執行指令碼,秩序指定相應的os和arch即可。

Golang 跨平台編譯

1 首先進入go src 原始碼所在目錄,執行如下命令建立目標平台所需的包和工具檔案。cd usr loc al g o sr c cgo enabled 0 goos linux goarch amd64 make.bash 如果是 windows 則修改 goos 即可。cgo enabled ...

golang 跨平台編譯

本文交叉編譯需要 1.5 以上 cgo enabled 0 goos windows goarch amd64 go build o test win x64.exe test.go cgo enabled 0 goos linux goarch amd64 go build o test linu...

Golang 跨平台編譯

例如 在 windows 環境編譯 linux 可以執行檔案或者在 linux 環境編譯 windows 可執行檔案 windows 環境編譯 linux 設定引數 export cgo enabled 0 export goos linux export goarch amd64 我是在 wind...