golang交叉編譯詳細(xì)

1、環(huán)境變量對(duì)照表
golang交叉編譯環(huán)境變量對(duì)照表

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位可執(zhí)行程序
set CGO_ENABLED=0 set GOOS=darwin set GOARCH=amd64 go build main.go
Windows 下編譯 Linux 64位可執(zhí)行程序
set CGO_ENABLED=0 set GOOS=linux set GOARCH=amd64 go build main.go
2.2 linux
Linux 下編譯 Mac 64位可執(zhí)行程序
export CGO_ENABLED=0 export GOOS=darwin export GOARCH=amd64 go build main.go
Linux 下編譯 Windows 64位可執(zhí)行程序
export CGO_ENABLED=0 export GOOS=windows export GOARCH=amd64 go build main.go
2.3 Mac OS
Mac 下編譯 Windows 64位可執(zhí)行程序
export CGO_ENABLED=0 export GOOS=windows export GOARCH=amd64 go build main.go
Mac 下編譯 Linux 64位可執(zhí)行程序
export CGO_ENABLED=0 export GOOS=linux export GOARCH=amd64 go build main.go
3、備注
3.1 CGO_ENABLED解釋
默認(rèn)情況下,Go的runtime環(huán)境變量CGO_ENABLED=1,即默認(rèn)開(kāi)始cgo,允許你在Go代碼中調(diào)用C代碼
如果標(biāo)準(zhǔn)庫(kù)中是在CGO_ENABLED=1情況下編譯的,那么編譯出來(lái)的最終二進(jìn)制文件可能是動(dòng)態(tài)鏈接,所以建議設(shè)置 CGO_ENABLED=0以避免移植過(guò)程中出現(xiàn)的不必要問(wèn)題。
到此這篇關(guān)于golang交叉編譯詳細(xì)的文章就介紹到這了,更多相關(guān)golang交叉編譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語(yǔ)言中g(shù)o?mod?vendor使用方法
go mod vendor的功能是將新增的依賴包自動(dòng)寫(xiě)入當(dāng)前項(xiàng)目的 vendor目錄,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中g(shù)o?mod?vendor使用的相關(guān)資料,需要的朋友可以參考下2022-10-10
Golang的os標(biāo)準(zhǔn)庫(kù)中常用函數(shù)的整理介紹
一文掌握Golang的panic和recover實(shí)戰(zhàn)
golang 后臺(tái)進(jìn)程的啟動(dòng)和停止操作
Golang?鎖原理的簡(jiǎn)單實(shí)現(xiàn)
Golang無(wú)限緩存channel的設(shè)計(jì)與實(shí)現(xiàn)解析

