交叉编译环境是由编译器、连接器和解释器组合成的综合开发环境。
交叉编译工具主要包括针对目标系统的编译器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/arm-linx中建立一个名为sys-linux的软连接,使其指向内核头文件所在的include目录
也可以指向configure命令,使用–with-headers参数指定内核头文件的实际路径
configure的运行参数设置如下,因为是交叉编译,所以要将编译器的CC变量设为arm-linux-gcc
CC=arm-linux-gcc/configure
–prefix=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即可