Go 1.5的交叉编译很是简单,基本用法以下:linux
GOOS=os GOARCH=arch go build packages
os: darwin
, freebsd
, linux
, windows...
golang
arch: 386
, amd64, arm...windows
os和arch的组合可参考: https://golang.org/doc/install/source#environment
架构
交叉编译的过程比较慢,由于go会把全部依赖的包(包括标准库)用指定的架构体系从新编译一遍。ui
另外,在交叉编译时应当使用 go build,而不是 go install,由于 go install 会把编译出来的 *.a 库文件写入 $GOROOT/pkg 或者 $GOPATH/pkg 目录,这可能并非你所但愿的。spa