在CentOS下用cross-ng建立arm-linux交叉編譯環(huán)境
一、配置環(huán)境
本文引用地址:http://m.butianyuan.cn/article/201611/319393.htm1、操作系統(tǒng):CentOS5.5
2、源代碼包:crosstool-ng-1.9.0.tar.bz2
二、安裝crosstool-ng依賴軟件包
libncurses5-dev
bison
flex
texinfo
libtool
patch
lzma
cvs
gawk
glibc-static
gcc-java
gcc-c++
#在CentOS Shell下,使用命令 $yum install xxx 依次安裝。
cvsd
temcap
- tar zxvf termcap-1.3.1.tar.gz
- cd termcap-1.3.1
- ./configure --prefix=/usr
- make
- make install
autoconf
#autoconf安裝成功之后,再來安裝automake
- tar -jxvf autoconf-2.66.tar.bz2
- cd autoconf-2.66
- ./configure
- make
- make install
automake
- tar -jxvf automake-1.10.2.tar.bz2
- cd automake-1.10.2
- ./configure
- make
- mak install
三、配置、編譯和安裝
- mkdir ~/crosstool
- cd
~/crosstool - mkdir src
- binutils-2.19.1.tar.bz2
glibc-2.9.tar.gz
dmalloc-5.5.2.tgz
glibc-ports-2.9.tar.bz2
mpfr-2.4.2.tar.bz2
duma_2_5_15.tar.gz
gmp-4.3.3.tar.bz2
ncurses-5.7.tar.gz
ecj-latest.jar
libelf-0.8.13.tar.gz
busybox.net/index.py/trunk/buildroot/toolchain/sstrip//sstrip.c?view=co%27" target="_blank">sstrip.c
gcc-4.3.2.tar.bz2
linux-2.6.33.7.tar.bz2
strace-4.5.19.tar.bz2
gdb-6.8.tar.bz2
ltrace_0.5.3.orig.tar.gz
cp xxx ./src#下載并拷貝以上代碼包到~/crosstool/src - cp ~/crosstool-ng-1.9.0.tar.bz2 ./
- mkdir crosstool-build
#編譯新交叉編譯器的工作目錄 - mkdir crosstool-install
#安裝目錄 - tar xjvf crosstool-ng-1.9.0.tar.bz2
#解壓文件 - cd crosstool-ng-1.9.0
- patch -p1 <
<補(bǔ)丁文件> #給crosstool-ng打補(bǔ)?。ㄈ绻校?/li> - ./configure --prefix=~/crosstool/crosstool-install
#配置crosstool-ng - make
#編譯crosstool-ng - make install
#安裝crosstool-ng - echo "PATH=$PATH:~/crosstool/tools/bin" >> ~/.bashrc
# 為后面調(diào)用ct-ng命令增加環(huán)境變量 - $ source ~/.bashrc
四、配置交叉編譯工具
- cd ~/crosstool/crosstool-build/
- cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi /* ./
#拷貝默認(rèn)配置文件到工作目錄 - mv crosstool.config
.config #修改文件名 - ../crosstool-install/bin/ct-ng menuconfig
此時(shí)會(huì)出現(xiàn)crosstool-ng的配置窗口,針對(duì)armv4t體系架構(gòu),開始對(duì)其進(jìn)行修改配置:
1、已下載好的源碼包路徑和交叉編譯器的安裝路徑。
Paths and misc options --->
2、修改交叉編譯器針對(duì)的構(gòu)架。
Target options
3、增加編譯時(shí)的并行進(jìn)程數(shù),以增加運(yùn)行效率,加快編譯。
Paths and misc options
#數(shù)值不宜過大,應(yīng)該為CPU數(shù)量的兩倍。由于我的CPU是雙核的,所以我填了4
4、關(guān)閉java編譯器,避免gcj出錯(cuò)
C compiler
5、一些個(gè)性化的設(shè)置
Toolchain options
Toolchain options
C compiler
五、為加快速度,根據(jù)配置自行下載相應(yīng)的軟件包
注意:雖然crosstool-ng自動(dòng)下載相應(yīng)軟件包,但是速度比較慢。我們不防在執(zhí)行ct-ng build命令之前,把相應(yīng)的軟件包預(yù)先下載好,拷貝到配置時(shí)指定的文件夾,這里是~/crosstool/src。查看crosstool-build目錄下“.config”文件就可知道需要哪些軟件包及其版本
六、編譯工具鏈
#接下來,就是漫長(zhǎng)的等待。crosstool-ng會(huì)自動(dòng)下載相應(yīng)的包,內(nèi)核文件,然后解壓,配置,編譯,鏈接
七、編譯好后的交叉編譯器
編譯器位于:${你配置時(shí)確定的路徑}/arm-centos-linux-gnueabi/bin
庫文件位于:${你配置時(shí)確定的路徑}/arm-centos-linux-gnueabi/arm-centos-linux-gnueabi/lib
八、測(cè)試一下編譯是否成功:
$ arm-centos-linux-gnueabi-gcc -v
評(píng)論