_Ubuntu9.10底下交叉编译gccgo

Tags: , , , , , , ,

Google刚推出了go语言,所以拿出来折腾下,由于是64位的系统,加上gccgo本身一些bug,折腾过程中遇到几个问题,这里简单列下(一些很容易找到的就略过),问题不分先后:

1、设置CFLAGS,执行./configure前执行export CFLAGS=’-m64′,具体我的configure是这样的../gccgo/configure –enable-languages=c,c++,go –disable-multilib 这里要disable掉multilib,我是觉得64位没必要非纠结32位

2、找不到linux/user.h,实际上是在sys/user.h,也就是在/usr/include/sys才有,另外有人找不到cs ss ds es fs gs那些,可参看http://groups.google.com/group/golang-nuts/browse_thread/thread/fe10ca33f7ad36aa/a7a1e9f274ae3204?lnk=raot&pli=1

3、go.install-plugin target找不到:
— Make-lang.in (revision 154084)
+++ Make-lang.in (working copy)
@@ -96,6 +96,7 @@ go.install-common: installdirs
-$(INSTALL_PROGRAM) gccgo$(exeext) $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext)
-chmod a+x $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext)

+go.install-plugin:
go.install-man:

go.uninstall:
参看http://archives.free.net.ph/message/20091115.235810.c2ed4344.en.html

整个过程纠结了两天,主要是make要很长时间一出错就得重新开始,人生。。
GCCGO的安装过程比较像底下这家伙:http://www.atoztoa.com/2009/11/making-gccgo-in-ubuntu.html (访问需要越墙)

接下来是编译go,下载代码好像花了满长时间的,第一次执行./all.bash的时候,貌似出了比较奇怪的错误,后面找到原因是没有给GOBIN目录设置权限,chmod 755 $GOBIN,然后参照How to install the Google GO compiler on Ubuntu Linuxe,我又在bashrc里添加了export PATH=$GOBIN:$PATH。再一次执行./all.bash,出现:
#— FAIL: http.TestClient
# Get http://www.google.com/robots.txt: unexpected EOF
#— FAIL: http.TestRedirect
# Get http://codesearch.google.com/: unexpected EOF
#FAIL
#make[1]: *** [test] Error 1
这个的错误的原因又是万恶的GFW,打开VPN,马上就正常了,看截图:
tsung@Tsung: ~-Develop-go-src_001

blog comments powered by Disqus