9g45交叉编译工具链的编译
前两天手残,在编译服务器敲错了命令:
rm /home
好吧,这下子误删了好多东西,不光是代码,连编译环境都出了问题。用“extundelete”也没能恢复过来,血的教训啊。没办法,只能重新弄个编译环境,同时在此做个记录,下回好少走弯路。
1. 重新编译交叉编译链的原由
由于项目里面使用了libuv 1.8这个库(一时脑热入的坑),之前一直在Windows下调试。后来移植到开发板上的时候发现之前的编译器的glibc版本太低了始终不能通过编译。而libuv需要glibc >= 2.12,所以只能重新编译工具链了。
2.下载buildroot
选用了buildroot-2014.02这个版本。为何不选用最新的?因为板子上的内核是2.6.30,试过最新的版本,已经不支持这么低的内核配置了。所以要么再升级kernel,要么选低版本的buildroot。我选了比较省事的一条路径(可以说我懒),降级用了buildroot-2014.02这个版本。下载后解压进入目录。
3.配置buildroot
输入下面命令,进行配置:
# make menuconfig
下面是主要配置,其他默认就行。
3.1 Target options
进入Target options,进行如下选择:
Target Architecture —>ARM(little endian);
Target Architecture Variant —>arm926t;
Target ABI —>EABI;
其他默认;
3.2 Toolchain
进入Toolchain,进行如下选择:
Kernel Headers—>Manually specified Linux version,内核版本选择手动指定,然后在下面的linux version 中填入2.6.30;
C library —>glibc,不能选uClibc和eglibc;
GCC compiler Version —>gcc 4.7.x;
[*] Enable C++ support
[*] Build cross gdb for the host
GDB debugger Version (gdb 7.5.x)
其他默认;
4. 生成交叉编译工具链
进行编译,期间会自动连通网络下载相应压缩包。
make
如果没有错误,生成的编译工具就在目录的output/host/usr/下面。
拷贝出来:
cp -ra output/host/usr/* /opt/arm-toolchain-4.7.x
5. 配置环境
编辑环境脚本:
vi /etc/profile
然后在最后面加上:
export PATH=${
PATH}:/opt/arm-toolchain-4.7.x/bin
验证下:
/o