Archive for 五月, 2015

在 openwrt上运行go

星期三, 五月 13th, 2015

最近在折腾在某个openwrt的路由器上安装我的app,然而我的app是用go写的,所以开始了折腾。

 

首先在找到了这个https://code.google.com/p/go-wiki/wiki/GccgoCrossCompilation ,通过这个学习,知道了要用一个牛逼的叫做cross copilation的东西,来编译go的东西。完整的gcc,里面会生成一个 gccgo这样的东西,如果你用cross compile技术生成了别的平台的gcc,也可以同时生成gccgo,然后就可以用这个gccgo来编译你的go文件了。

后来在学习gcc的东西,知道,只有gcc 5 才能编译go1.4的东西,在ubuntu14里,apt-get 可以直接安装gccgo-5, 我试了一下gccgo编译我的go项目,果然成功了,过程如下:

export GOPATH=XXX

alias gccgo=gccgo-5

 CGO_ENABLED=0 GOOS=linux go build -x –compiler=gccgo

编译出来的果然可以运行

然而得到openwrt版的gccgo是个大工程,我找到了一个github项目来做这事的https://github.com/GeertJohan/openwrt-go

然而跟着它执行,并不能得到什么,啥也得不到,因为编译到一般,总会在getcontent makecontent等几个地方报错,后来有找到个哥们

http://www.sajalkayan.com/post/golang-openwrt-mips.html

他的也是利用上面这个github但是比较巧妙,把原来的openwrt项目打上这个里面的patch,我试了一下,正在运行中,不知道能否运行下去,其实我就算运行下去,得到的也是一个gccgo-4.8,后面如何升级到gccgo-5并编译我的go项目就不得而知了,先总结一下,以晌大家。