想把某个用go写的工具放到家里路由(R6300v2)上跑,需要自己build一份host x64, target arm的go交叉编译器,花几分钟看了一下

官方文档

,结果就这么简单:

$ git clone .../go && cd go && git checkout go1.4.2
$ cd src
$ GOOS=linux GOARCH=arm GOARM=5 ./make.bash

按我以前交叉编译gcc toolchain的经验,编译怎么也得要个几分钟到十几分钟不等。结果在我的E3 1230v3 + 256G Plextor M6S上,编译go(包括库)只花了不到20秒,也许不到10秒。比git clone还快。

我又换了一台便宜的VPS($10/半年,OpenVZ虚拟化,256M RAM + 128M vSWAP, 100G HDD,共享Xeon X5650 2.67GHz的两个core)来编译,下面是time计时结果:

real	0m59.883s
user	1m28.971s
sys	0m11.102s

刚刚好一分钟。

p.s: 用GOARM=5是因为R6300v2所用的BCM53011虽然是双核Cortex A9,但阉割了NEON,只能用软浮点。