您的位置:首页 > 移动开发 > Android开发

go 语言跨平台编译android版

2017-06-15 19:59 260 查看
系统: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: