在Loongnix上使用原生go编译器

 

前段时间编译新版ArduinoIDE,发现它的一个小程序arduino-builder需要使...



前段时间编译新版Arduino

IDE,发现它的一个小程序arduino-builder需要使用go编译器来编译,而Loongnix1.0只有gccgo,我没搞懂那东西怎么用的(
我笨!),另外在网上看到go1.6已经加入了mips64el的原生支持,就想着把这货儿弄到Loongnix上来。翻了一下它的wiki,不一会儿就做好了。
安装方法也很简单。对于龙芯3,采用交叉编译的办法。

首先我们在x86机器上下载go1.4的二进制包作为交叉编译的bootstrap,按照自己的操作系统是32bit还是64bit进行下载,下载后解压。下载最新的go1.6的源码包,解压,我这里把这两个文件都解压在主目录的。所以现在我的主目录有go,go1.4两个目录,其中go是go1.6的源码目录,go1.4是go1.4可执行文件和一些工具的目录。(以下命令的执行是以我的机器实际情况来执行的,你可能需要按照你的情况修改某些命令)

现在进入go1.6的源码目录的src目录,

  1. cd  ~/go/src
复制代码

接下来是编译,在开始编译以前我们需要设置GOPATH变量,设置GOPATH的作用是告诉go命令和其他相关工具,在哪里去找到安装在你系统上的Go包。
另外我们需要设置GOOS,GOARCH,其中GOOS是告诉go我们的目标平台的操作系统类型,这里应该选择linux,GOARCH是告诉go命令我们的目标平台所用的指令集,对于Loongnix,这里应该选择mips64le(不是mips64el)!

  1. exportGOOS=linux
  2. exportGOARCH=mips64le
  3. exportGOPATH=~/go1.4
复制代码

当然你也可以在交叉编译时设置这三个变量,
编译:

  1. ./bootstrap.bash
复制代码

如果你没有执行上诉三个export命令设置那三个变量的话也没有关系,应该使用

  1. GOROOT=~/go1.4/  GOARCH=mips64le  GOOS=linux  ./bootstrap.bash
复制代码

等待一小会儿就编译完成完成了,编译成功之后,终端提示

  1. Bootstraptoolchain for linux/mips64le installed in/home/lxiao/go-linux-mips64le-bootstrap.
  2. Buildingtbz.
  3. -rw-r--r--1 lxiao users 46761183 5月  12 21:51 /home/lxiao/go-linux-mips64le-bootstrap.tbz
复制代码

至此,可以在Loongnix1.0上使用的go1.6就编译完成了。并且已经打包在/home/lxiao/go-linux-mips64le-bootstrap.tbz,将这个压缩包拷贝到Loongnix1.0上,解压到某个目录,
将这个go1.6的相关命令工具添加到PATH变量

  1. export  PATH=$PATH:YourDIR/go-linux-mips64le-bootstrap/bin
复制代码

其中YourDIR是你自己的解压目录。为了以后方便使用可以将这条命令加入到shell

profile,($HOME/.bashrc,$HOME/.profile)
好了,输入go命令试试看。


我这里也有个编译好了的二进制包,下载后解压缩到Loongnix1.0上设置好PATH即可使用,下载地址 经过测试,龙芯3上debian系统也可以使用。


    关注 Linux伊甸园开源社区


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册