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=386go build -o hello.exe hello.go
其中二者可以設定如下引數:
$goos $goarchdarwin 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...