go 语言跨平台编译android版

系统:centos7   go版本1.6.3 

golang环境安装见上文


1.首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。

$  cd /usr/lib/golang/src/
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash

如果是 Windows 则运行:
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash

如果是 arm andriod(arm是支持andriod的)  则运行:
$ CGO_ENABLED=0 GOOS=arm GOARCH=amd64 ./make.bash

会报以下错误:

##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /root/go1.4/bin/_/go.
ERROR: or /root/go1.4/bin/_/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

问题定位:

由于编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制,并且需要把GOROOT_BOOTSTRAP的路径设置为1.4版本GO的根目录,这样它的bin目录就可以直接使用到1.4版本的GO

所以解决办法:

下载go1.4的源码   下载地址:http://www.golangtc.com/download

 go1.4.2.linux-amd64.tar.gz 

解压 /root/go1.4/go

设置环境变量(此处临时设置用export)

 export GOROOT_BOOTSTRAP="/root/go1.4/go/"

进入golang1.6 的路径 cd /usr/lib/golang/src/

$ CGO_ENABLED=0 GOOS=arm GOARCH=amd64 ./make.bash  

执行成功

2.编译程序,例如android版本

$ CGO_ENABLED=0 GOOS=arm GOARCH=amd64 go build


补充:
之所以需要执行 ./make.sh 并不是重新安装Go语言,而是生成交叉编译(目标平台)需要的工具和文件。这些只是在第一次交叉编译的时候做。之后就不需要了。

参考:

https://github.com/northbright/Notes/blob/master/Golang/china/install-go1.6-from-source-on-centos7-in-china.md

http://studygolang.com/topics/21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值