制作交叉编译工具链(1)

交叉编译环境是由编译器、连接器和解释器组合成的综合开发环境。

交叉编译工具主要包括针对目标系统的编译器GCC、目标系统的二进制工具binutils、目标系统的标准C库Glibc和目标系统的Linux内核头文件

安装上述文件,并设置hell变量 PREFIX 指定可执行程序的安装路径

1.编译binutils

运行configure文件,并使用 --prefix=$PREFIX参数指定安装路径,使用 --target=arm-linux参数指定目标机类型,然后执行make install

2.配置linux内核头文件

执行make mrproper进行清理工作,然后执行make config ARCH=arm(或make menuconfig/xconfig ARCH=arm)进行配置
配置完成之后,需要将内核头文件复制到安装mul
cp -dR include/asm-arm $PREFIX/arm-linux/include/asm-arm
cp -dR include/linux $PREFIX/arm-linux/include/linux

3.第一次编译GCC

configu的运行参数设置
–prefix=$PREFIX
–target=arm-linux
–disable-threads
–disable-Shared
–enable-languages=c
执行make install,将生成一个简单的gcc,由于编译整个gcc需要目标机的glibc库,它现在还不存在,因此需要首先生成一个最简单的gcc
只需要具备编译目标机glibc库的能力即可

4.交叉编译glibc

这一步针对目标机的CPU
#该过程需要用到linux内核头文件,默认路径为PREFIX/armlinux/syslinuxPREFIX/arm-linux/sys-linux 在PREFIX/arm-linx中建立一个名为sys-linux的软连接,使其指向内核头文件所在的include目录
也可以指向configure命令,使用–with-headers参数指定内核头文件的实际路径

configure的运行参数设置如下,因为是交叉编译,所以要将编译器的CC变量设为arm-linux-gcc
CC=arm-linux-gcc/configure
–prefix=PREFIX/armlinuxhost=armlinuxenableaddonsconfiguremakeinstall,glibc,glibcPREFIX/arm-linux --host=arm-linux --enable-add-ons 按以上配置执行configure和make install,glibc的交叉编译过程就完成了 这里需要指出,glibc的安装路径设置为PREFIX ARCH=arm/arm-linux,如果此处设置不当,第二次编译gcc时可能找不到glibc的头文件和库

5.第二次编译gcc

configure运行参数设置
CC=arm-linux-gcc/configure
–prefix=$PREFIX/arm-linux
–target=arm-linux
–enable-languages=c,c++
运行make install

到此为止整个交叉编译环境就完成了

也可以去网上下载交叉编译工具链arm-linux-toolchains.tgz
tar zxvf arm-linux-toolchains.tgz -C /arm9
解压完毕后,把工具链的目录加入到环境变量PATH即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章