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解釋
默認情況下,Go
的runtime
環境變量CGO_ENABLED=1
,即默認開始cgo
,允許你在Go代碼中調用C代碼
如果標準庫中是在CGO_ENABLED=1
情況下編譯的,那麼編譯出來的最終二進制文件可能是動態鏈接,所以建議設置 CGO_ENABLED=0
以避免移植過程中出現的不必要問題。
到此這篇關於golang
交叉編譯詳細的文章就介紹到這瞭,更多相關golang
交叉編譯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 語言編程花絮內建構建順序示例詳解
- Makefile構建Golang項目示例詳解
- golang 在windows中設置環境變量的操作
- golang語言中wasm 環境搭建的過程詳解
- Golang打包配置文件的實現示例