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截图:
两天前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截图:
相关文章推荐
- [转载] 在Linux下用buildroot搭建mips/arm的交叉编译平台
- 在 x86 上面交叉编译 gstreamer for arm(zz)与MIPS平台上的编译(原)
- mips-openwrt-linux-gcc test_usbsw.c -o usbsw 编译问题
- 哪里有编译好的gcc 4.0 toolchain for ARM
- 【转】Ubuntu 12.04下安装arm-linux-gcc等gnu arm toolchain交叉编译工具
- Osmocombb项目编译GnuArmToolchain中的GCC4.5.2时遇到recipe for target 'doc/cpp.info' failed(texinfo)错误的解决方法
- 关于arm-linux-gcc交叉编译工具链,实现自己的crt0或者编译UBOOT出现undefined reference to `__aeabi_unwind_cpp_pr0'的解决方法
- 搭建arm-linux-gcc交叉编译环境
- Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解
- arm-linux-gcc交叉编译环境搭建
- 交叉编译工具链-及arm-linux-androideabi-gcc编译方法
- arm-linux-gcc在编译应用程序时,如何查找默认的头文件路径
- arm-linux-gcc 交叉编译环境的搭建
- GCC的ARM编译选项
- arm-linux-gcc-4.4.3交叉编译google的protobuf。以及使用方法
- 【Linux学习】Ubuntu下嵌入式交叉编译环境arm-linux-gcc搭建
- 建立针对WinCE的GCC-ARM交叉编译环境
- Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解
- 【Linux】Linux下MIPS平台交叉编译FFmpeg库 及使用库截取视频中的某一帧