您的位置:首页 > 大数据 > 人工智能

OpenWrt编译出ARM/MIPS等平台的native GCC (toolchain)

2013-01-25 12:46 736 查看
愈深入地研究OpenWrt,愈佩服它框架的独到之处。

两天前lintel告诉我,他在s3c6410的ARM Debian上验证了可以编译OpenWrt,只不过编译时间太长了,用了将近两天半编译s3c2440 OpenWrt。

当时觉得好神奇啊,利用ARM Debian的编译环境可以编译出其他处理器的OpenWrt!

这直接证明了OpenWrt的强大之处:可以在任何处理器平台上编译任意处理器的OpenWrt!

当时我在想,如果编译的OpenWrt根文件系统rootfs本身就自带编译器,这不就可以省略掉了使用ARM Debian这个环节?!

直接编译出目标机所使用的Native Toolchain本地编译工具链, 这样包含的工具链的OpenWrt Linux就可以编译出包括自身处理器在内的所有处理器平台的OpenWrt,也就是用OpenWrt生成OpenWrt!

这让我想到了人类开始进入文明时代: 使用工具制造工具!

经过几天的努力终于ok,gcc可以使用了!

这其中还添加了gmp,mfpr库,这是gcc-4.3.3以后所必备的,用于处理高精度浮点运算。(OpenWrt原始自带的GCC feeds是4年前比较老的版本,和目前所使用的backfire_10.03.1不匹配,所以自己重写;)

这样,OpenWrt其自身不仅可以编译出交叉编译工具链, 用于在PC上编译目标机的可执行程序;

而且,也可以编译出目标机(比如arm或mips平台)所使用的本地编译工具链Native Toolchain(如arm下运行的gcc,binutils等),

从此,ARM/MIPS/x86/PowerPC等嵌入式平台就可以实现自给自足,无需在PC上交叉编译然后再拷贝到嵌入式平台上,直接本地编译即可 : )

照这样推下去,以后手机、平板啥的都可以运行OpenWrt,也能编译OpenWrt。

缺点就是运行速度不是那么给力,编译大型软加耗时较长,不过照着目前双核,4核,8核的发展趋势,硬件过剩,这个也将不成问题!

下面是在arm s3c2440上运行的gcc截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: