分享自己做的Kindle3交叉编译工具链
最新突然兴起想要在k3上跑一些c/c++项目的程序,可惜光有源码没有编译工具很是头疼。找了一大圈Google就是没找到一个合适的现成的交叉编译工具链,不是Glibc版本过低,就是arm目标平台不符合,最后只好放弃这个偷懒的方法(其实已经算不上偷懒了,在找交叉编译工具链上已经花了大量的时间精力。。。),取而代之的方法就是直接源码编译交叉编译工具链呗。
看了下网上关于工具链源码编译的方法还是挺多的,本着哪个方便就用哪个的原则,我发现了一个编译神器:crosstool-ng,这玩意儿本身也是需要源码编译,依赖bison gperf flex texinfo libtool ncurses-libs ncurses-devel gawk gcc gcc-c++ gcc-java glibc glibc-common libc-client-devel libc-client glibc-devel glibc-static glibc-utils (确切地说是编译GCC要用),使用方法照着文档说明就行,主要就是要生成一个config文件,里面定义了要编译的各个组件的版本以及目标平台、是否为交叉编译等,这个工具还提供了一个命令行下的图形界面来对编译配置文件进行增删改查,非常的赞,当然如果随便配置的话很有可能会编译不成功的。官方网站点此进入,简略的使用方法见下:
ct-ng menuconfig # 启动可视化界面,Load/modify Config文件 ct-ng build # 开始编译toolchains
k3的crosstool-ng配置文件在mobileread论坛上有分享,所以也不用自己劳神配置,不过我还是稍微修改了些地方(isl版本过高导致后面的编译失败),文件我会包含在下面的下载链接里。最后的build过程还是比较顺利的,双核2G内存虚拟机用了大概40多分钟就全部完成了,注意编译时不能在root用户的shell下进行,否则会通不过检查。编译完成后会在同级目录下生成x-tools目录,里面躺着的就是交叉编译工具链啦~配置下环境变量即可使用。下面的链接就是完整的k3交叉编译工具链了,赶紧来个Hello world试试吧~(鉴于linux平台的多样性,我只能保证交叉编译工具链在centos 6.5 x86-64下运行正常,这也是为什么网上鲜有现成工具下载的原因)。
附件在此:
另外我还发现oracle java8下载页面里的那个arm平台的jdk真的可以在k3上跑的起来,链接在此,选择Linux ARM v6/v7 Hard Float ABI平台就是。这样在kindle3下我就可以欢快地跑Java和C程序啦!
» 转载请注明来源:Terence的窝 » 《分享自己做的Kindle3交叉编译工具链》
Google Chrome 66.0.3359.139 GNU/Linux x64
表示只会用kindle
[回复]