golang交叉編譯詳細

1、環境變量對照表

golang交叉編譯環境變量對照表

GOOS | GOARCH | OS VERSION ---|---|--- linux | 386 / amd64 / arm | >= Linux 2.6 darwin | 386 / amd64 | OX X (Snow Leopard + Lion) freebsd | 386 / amd64 | >= FreeBSD 7 windows | 386 / amd64 | >= Windows 2000

2、使用

2.1 Windows

Windows 下編譯 Mac 64位可執行程序

set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64

go build main.go

Windows 下編譯 Linux 64位可執行程序

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64

go build main.go

2.2 linux

Linux 下編譯 Mac 64位可執行程序

export CGO_ENABLED=0
export GOOS=darwin
export GOARCH=amd64

go build main.go

Linux 下編譯 Windows 64位可執行程序

export CGO_ENABLED=0
export GOOS=windows
export GOARCH=amd64

go build main.go

2.3 Mac OS

Mac 下編譯 Windows 64位可執行程序

export CGO_ENABLED=0
export GOOS=windows
export GOARCH=amd64

go build main.go

Mac 下編譯 Linux 64位可執行程序

export CGO_ENABLED=0
export GOOS=linux
export GOARCH=amd64

go build main.go

3、備註

3.1 CGO_ENABLED解釋

默認情況下,Goruntime環境變量CGO_ENABLED=1,即默認開始cgo,允許你在Go代碼中調用C代碼

如果標準庫中是在CGO_ENABLED=1情況下編譯的,那麼編譯出來的最終二進制文件可能是動態鏈接,所以建議設置 CGO_ENABLED=0以避免移植過程中出現的不必要問題。

到此這篇關於golang交叉編譯詳細的文章就介紹到這瞭,更多相關golang交叉編譯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: