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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 交叉編譯環(huán)境的建立

          交叉編譯環(huán)境的建立

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          1. 安裝標(biāo)準(zhǔn)的C開發(fā)環(huán)境,由于Linux安裝默認(rèn)是不安裝的,所以需要先安裝一下(如果已經(jīng)安裝好的話,就可以免去這一步了):

          $ sudo apt-get install gcc g++ libgcc1 libg++ make gdb
          如果上面這個(gè)安裝不行,可以試試
          $ sudo apt-get install build-essential

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

          2. 下載arm-linux-gcc-4.3.2.tgz到任意的目錄下,進(jìn)入這個(gè)文件夾
          $ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /
          注意:C 后面有個(gè)空格,并且 C 是大寫的,它是英文單詞“Change”的第一個(gè)字母,
          在此是改變目錄的意思。
          執(zhí)行該命令,將把 arm-linux-gcc 安裝到/usr/loca/arm/4.3.2 目錄。

          3. 修改環(huán)境變量,把交叉編譯器的路徑加入到PATH。

          方法一:修改/etc/bash.bashrc文件(此文件只對(duì)當(dāng)前用戶適用)
          $sudo gedit /etc/bash.bashrc
          在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin

          方法二:修改/etc/profile文件(此文件屬于系統(tǒng)級(jí)別的環(huán)境變量,設(shè)置在里面的東西對(duì)所有用戶適用):
          $sudo gedit /etc/profile
          增加路徑設(shè)置,在末尾添加如下,保存/etc/profile文件:
          export PATH=$PATH:/usr/local/arm/4.3.2/bin

          方法三:修改/etc/environment文件
          $sudo gedit /etc/environment
          原文件應(yīng)為 PATH="/usr/local/sbin:/usr/local/bin:/usr /sbin:/usr/bin:/sbin:/bin: /usr/games“將其改為PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可

          4. 立即使新的環(huán)境變量生效,不用重啟電腦:
          對(duì)應(yīng)方法一:$ source /root/.bashrc
          對(duì)應(yīng)方法二:$ source /etc/profile
          方法三立即生效

          5. 檢查是否將路徑加入到PATH:
          $ echo $PATH
          顯示內(nèi)容/usr/local/sbin:/usr /local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/usr/local/arm/4.3.2/bin 說明已經(jīng)將交叉編譯器的路徑加入PATH。至此,安裝完成。


          6.測(cè)試是否安裝成功
          $ arm-linux-gcc -v
          上面的命令會(huì)顯示arm-linux-gcc信息和版本,這是我顯示的信息:
          Using built-in specs.
          Target: arm-none-linux-gnueabi
          Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion=Sourcery G++ Lite 2008q3-72 --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
          Thread model: posix
          gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

          7.編譯Hello World程序,測(cè)試交叉工具鏈
          寫下下面的Hello World程序,保存為hello.c
          #include
          int main()
          {
          printf("Hello World!");
          return 0;
          }

          執(zhí)行下面的命令:
          $ arm-linux-gcc -o hello hello.c
          源程序有錯(cuò)誤的話會(huì)有提示,沒有任何提示的話,就是通過了,就可以下載到ARM目標(biāo)板上運(yùn)行了! 接著可以輸入file hello的命令,查看生成的hello文件的類型,要注意的是生成的可執(zhí)行文件只能在ARM體系下運(yùn)行,不能在其于X86的PC機(jī)上運(yùn)行。


          原文出處:http://blog.csdn.net/dongliqiang2006/archive/2009/11/07/4779830.aspx


          關(guān)鍵詞: 交叉編譯環(huán)

          評(píng)論


          技術(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); })();