前段时间编译新版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目录,
接下来是编译,在开始编译以前我们需要设置GOPATH变量,设置GOPATH的作用是告诉go命令和其他相关工具,在哪里去找到安装在你系统上的Go包。
另外我们需要设置GOOS,GOARCH,其中GOOS是告诉go我们的目标平台的操作系统类型,这里应该选择linux,GOARCH是告诉go命令我们的目标平台所用的指令集,对于Loongnix,这里应该选择mips64le(不是mips64el)!
当然你也可以在交叉编译时设置这三个变量,
编译:
如果你没有执行上诉三个export命令设置那三个变量的话也没有关系,应该使用
等待一小会儿就编译完成完成了,编译成功之后,终端提示
至此,可以在Loongnix1.0上使用的go1.6就编译完成了。并且已经打包在/home/lxiao/go-linux-mips64le-bootstrap.tbz,将这个压缩包拷贝到Loongnix1.0上,解压到某个目录,
将这个go1.6的相关命令工具添加到PATH变量
其中YourDIR是你自己的解压目录。为了以后方便使用可以将这条命令加入到shell profile,($HOME/.bashrc,$HOME/.profile)
好了,输入go命令试试看。
我这里也有个编译好了的二进制包,下载后解压缩到Loongnix1.0上设置好PATH即可使用,下载地址 经过测试,龙芯3上debian系统也可以使用。