我的环境:
64位 windows 10
go version go1.9.1 windows/amd64
1. 安装MinGW-w64
我的系统是64位win10,早期版本的MinGW我安装后编译go的相关工具会一路报错,换成mingw-w64就可以顺利编译,下载地址:
http://sourceforge.net/projects/mingw-w64/
下载完进行安装,处理器架构选择x86_64(64位),其他选项使用默认,下一步选择安装路径,假设为C:\MinGW,按下一步开始下载安装。最后把 C:\MinGW\mingw64\bin 加入到系统环境变量。
2. 构建Go标准包
进入到go的src目录下,我的是 C:\go\src,执行 all.bat 进行编译,不出意外的话很快就会完成。
接下来就可以在windows下编译linux平台的二进制文件了,进入项目目录,创建一个批处理文件 make-linux.bat,输入以下命令:
:: 设置目标环境处理器架构
set GOARCH=amd64
:: 设置目标操作系统
set GOOS=linux
:: 开始编译
go build
pause
保存后运行,就可以看到当前目录下已经编译生成了可在64位linux环境下运行的可执行文件。
环境变量 GOARCH 和 GOOS 分别用来指定编译目标环境的处理器架构和操作系统类型,支持以下组合:
$GOOS$GOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
注意Go语言对系统是有要求的,版本太低的系统可能不支持,具体可以看这里 https://golang.org/doc/install
3. 使用交叉编译工具Gox
使用 go get github.com/mitchellh/gox 进行安装后会在 $GOPATH/bin 目录下生成 gox.exe,为了方便以后使用,最好拷到 c:\go\bin 目录下。
然后进入到项目目录,执行 gox 即可一次性完成所有平台的编译。
$ gox
Number of parallel builds: 4
如果只想编译64位linux和windows下的程序,可使用:
gox -os "windows linux" -arch amd64
更多用法请看帮助信息
gox -h