Golang 支持在一個平台下生成另一個平台可執行程序的交叉編譯功能。
Mac下編譯Linux, Windows平台的64位可執行程序:
1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build gofile.go 2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build gofile.go
Linux下編譯Mac, Windows平台的64位可執行程序:
1 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build gofile.go 2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build gofile.go
Windows下編譯Mac, Linux平台的64位可執行程序:
1 SET CGO_ENABLED=0 2 SET GOOS=darwin 3 SET GOARCH=amd64 4 go build gofile.go 5 6 SET CGO_ENABLED=0 7 SET GOOS=linux 8 SET GOARCH=amd64 9 go build gofile.go
GOOS:目標可執行程序運行操作系統,支持 darwin,freebsd,linux,windows
GOARCH:目標可執行程序操作系統構架,包括 386,amd64,arm
Golang version 1.5以前版本在首次交叉編譯時還需要配置交叉編譯環境:
1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash 2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
make.bash文件只在Golang源碼編譯安裝情況下才用。