最方便的交叉编译工具gox

https://github.com/mitchellh/gox


安装

$ go get github.com/mitchellh/gox

$ gox -build-toolchain

帮助

$ gox -h

使用

$ cd [project dir]

$ gox

or

$ gox github.com/user/project

指定平台

$ gox -os="darwin" //同时编译Mac平台的32和64位程序

$ gox -osarch="linux/amd64" //只编译linux下的64位程序


gox虽好但无法交叉编译带有Cgo的程序

QQ20150706-1

这时就需要借助xgo来编译了

https://github.com/karalabe/xgo

安装 $ go get github.com/karalabe/xgo

使用xgo需要先安装docker

https://www.docker.com/

之前没接触过docker也没关系,照官网安装好即可

Mac上启动boot2docker 然后

$ docker pull karalabe/xgo-latest

需要下载的文件较大,下载完后就可以使用xgo了

$ xgo github.com/project-iris/iris

在安装docker的时候遇到了一些问题,第一次安装成功后能正常使用,关闭后再进入提示以下问题

Post http:///var/run/docker.sock/v1.16/containers/create:

dial unix /var/run/docker.sock: no such file or directory.

Are you trying to connect to a TLS-enabled daemon without TLS?

解决方案是在~/etc/profile中加入

eval "$(boot2docker shellinit)"

还有这个问题

An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/version: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103

解决方法是执行

boot2docker ssh sudo /etc/init.d/docker restart

来自http://vielmetti.typepad.com/vacuum/2015/06/docker-170-issues-problems-with-mac-and-boot2docker-arm-and-disk-size-of-images.html