交叉编译介绍
- 本地编译:本地编译就是在当前的操作系统下(x86的CPU下),直接编译出可执行程序,其可以直接在当前的环境,即当前x86的CPU下运行。
- 交叉编译:就是可以编译出在其它操作系统下运行的程序,比如在Linux下编译后在Windows系统中运行,或者说在32位下编译在64位下运行。
交叉编译命令
例子
#编译为Windows 32系统运行的可执行文件
$ CGO_ENABLED=0 GOOS=windows GOARCH=386 go build test.go
CGO_ENABLE = 0 设置CGO工具不可用,该方式下不支持CGO
GOOS表示程序构建的目标操作系统——linux、windows
GOARCH表示程序构建环境的目标计算架构(32位——386,64位——amd64)
上面的命令会默默地安装大部分标准库,但是安装相对较慢,可以使用如下命令提前进行标准库的安装
GOOS=windows GOARCH=amd64 go install
,go version >=1.5做以上支持,1.5以下的版本可以查看WindowsCrossCompiling