<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在CentOS下用cross-ng建立arm-linux交叉編譯環(huán)境

          在CentOS下用cross-ng建立arm-linux交叉編譯環(huán)境

          作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
          網(wǎng)上很多都是在Ubuntu下用cross-ng建立arm-linux交叉編譯工具的文章,而CentOS下卻很難尋覓。在這里記錄了自己的建造過程,以供廣大網(wǎng)友參閱。

          一、配置環(huán)境

          本文引用地址:http://www.ex-cimer.com/article/201611/319393.htm

          1、操作系統(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#手動安裝

          #注意:CentOS5.5下的automake版本太低,需要 1.10或以上版本

          • 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ǔ)丁(如果有)
          • ./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

          此時會出現(xiàn)crosstool-ng的配置窗口,針對armv4t體系架構(gòu),開始對其進(jìn)行修改配置:

          1、已下載好的源碼包路徑和交叉編譯器的安裝路徑。

          Paths and misc options --->

          (/home/centos/crosstool/src) Local tarballs directory #保存源代碼包路徑

          (/home/centos/crosstool/tools) Prefix directory#交叉編譯器的安裝路徑

          2、修改交叉編譯器針對的構(gòu)架。
          Target options --->
          *** Target optimisations ***
          (armv4t) Architecture level
          (arm9tdmi) Emit assembly for CPU
          (arm920t) Tune for CPU

          3、增加編譯時的并行進(jìn)程數(shù),以增加運(yùn)行效率,加快編譯。
          Paths and misc options --->
          *** Build behavior ***
          (4) Number of parallel jobs

          #數(shù)值不宜過大,應(yīng)該為CPU數(shù)量的兩倍。由于我的CPU是雙核的,所以我填了4

          4、關(guān)閉java編譯器,避免gcj出錯
          C compiler --->
          *** Additional supported languages: ***
          [N] Java

          5、一些個性化的設(shè)置
          Toolchain options --->
          *** Tuple completion and aliasing ***
          (centos) Tuples vendor string #產(chǎn)生的編譯器前綴:arm-centos-linux-gnueabi-
          #這個前綴太長,crosstool-ng可以在配置的時候設(shè)置別名
          Toolchain options --->
          *** Tuple completion and aliasing ***
          (arm-linux) Tuples alias
          #這里設(shè)置別名為arm-linux,這樣以后通過arm-linux-gcc就可以調(diào)用arm-centos-linux-gnueabi-gcc了

          C compiler --->
          (crosstool-NG-${CT_VERSION}-centos) gcc ID string
          #接下來保存就可以了

          五、為加快速度,根據(jù)配置自行下載相應(yīng)的軟件包

          注意:雖然crosstool-ng自動下載相應(yīng)軟件包,但是速度比較慢。我們不防在執(zhí)行ct-ng build命令之前,把相應(yīng)的軟件包預(yù)先下載好,拷貝到配置時指定的文件夾,這里是~/crosstool/src。查看crosstool-build目錄下“.config”文件就可知道需要哪些軟件包及其版本
          六、編譯工具鏈

          ../crosstool-install/bin/ct-ng build

          #接下來,就是漫長的等待。crosstool-ng會自動下載相應(yīng)的包,內(nèi)核文件,然后解壓,配置,編譯,鏈接

          七、編譯好后的交叉編譯器
          編譯器位于:${你配置時確定的路徑}/arm-centos-linux-gnueabi/bin
          庫文件位于:${你配置時確定的路徑}/arm-centos-linux-gnueabi/arm-centos-linux-gnueabi/lib

          八、測試一下編譯是否成功:
          $ arm-centos-linux-gnueabi-gcc -v




          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();