製作交叉編譯工具鏈(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即可

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