先执行一次生成目标系统相应的库:
cd $GOROOT/src
CGO_ENABLED=0 GOOS=[ linux | windows ... ] GOARCH=[ amd64 | 386 ] ./make.bash
比如: 编译32位windows程序
cd $GOROOT/src
CGO_ENABLED=0 GOOS=windows GOARCH=386 ./make.bash
以后编译的时候用: CGO_ENABLED=0 GOOS=[ linux | windows ... ] GOARCH=[ amd64 | 386 ] go build *
比如: CGO_ENABLED=0 GOOS=windows GOARCH=386 go build *
注1:这种方式不支持CGO
下面以在windows64下生成windows32程序为例 生成目标系统相关的库
cd %GOROOT%/src
set CGO_ENABLED=0
set GOOS=windows
set GOARCH=386
call make.bat
要编译的时候保证环境变量里有下面的环境变量就行:
CGO_ENABLED=0
GOOS=windows
GOARCH=386
注1: 需要mingw环境 golang 下各种OS各种架构应该是可以互相交叉编译,只试了linux, windows其它没测。