在Loongnix上使用原生go编译器

来源:龙芯论坛 作者:lxiao
  

     前段时间编译新版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
  2.  
复制代码

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

  1. export GOOS=linux
  2. export GOARCH=mips64le
  3. export GOPATH=~/go1.4
复制代码

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

  1. ./bootstrap.bash
复制代码

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

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

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

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

至此,可以在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       
  2.  
复制代码

其中YourDIR是你自己的解压目录。为了以后方便使用可以将这条命令加入到shell profile,($HOME/.bashrc,$HOME/.profile)
好了,输入go命令试试看。
 
我这里也有个编译好了的二进制包,下载后解压缩到Loongnix1.0上设置好PATH即可使用,下载地址 经过测试,龙芯3上debian系统也可以使用。


时间:2016-05-16 11:36 来源:龙芯论坛 作者:lxiao 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量