亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人


嵌入式培訓資料:搭建交叉編譯環境

分享到:
           

    搭建交叉編譯環境是嵌入式開發的第一步,也是關鍵的一步。不同的體系結構、不同的操作內容甚至是不同版本的內核,都會用到不同的交叉編譯器。選擇交叉編譯器非常重要,有些交叉編譯器經常會有部分的BUG,都會導致后的代碼無法正常運行。

    交叉編譯器完整的安裝一般涉及到多個軟件的安裝(讀者可以從ftp://gcc.gnu.org/pub/下載),包括binutils、gcc、glibc、glibc-linuxthreads等軟件。其中,binutils主要用于生成一些輔助工具,如readelf、objcopy、objdump、as、ld等;gcc是用來生成交叉編譯器的,主要生成arm-linux-gcc交叉編譯工具(應該說,生成此工具后已經搭建起了交叉編譯環境,可以編譯Linux內核了,但由于沒有提供標準用戶函數庫,用戶程序還無法編譯);glibc主要是提供用戶程序所使用的一些基本的函數庫,glibc-linuxthreads是線程相關函數庫。這樣,交叉編譯環境就完全搭建起來了。

    上面所述的搭建交叉編譯環境比較復雜,很多步驟都涉及到對硬件平臺的選擇。因此,現在嵌入式平臺社區或廠商一般會提供在各種平臺上測試通過的交叉編譯器,而且也有很多把以上安裝步驟全部寫入腳本文件或者以發行包的形式提供,這樣就大大方便了用戶的使用。例如,crosstool是美國人Dan Kegel開發的一套可以自動編譯不同版本的交叉編譯器,關于該工具的使用請參考同一系列的教材“嵌入式系統技術與設計”。

    在本文中采用廣泛使用的cross-3.3.2交叉編譯器工具鏈,其使用非常簡單。

    $ mkdir –p /usr/local/arm /* 這是交叉編譯器安裝目錄*/
    $ cp cross-3.3.2.bar.bz2 /usr/local/arm
    $ cd /usr/local/arm
    $ tar jxvf cross-3.3.2.tar.gz

    此時在/usr/local/arm/3.3.2/bin/下已經出現了很多交叉編譯工具。用戶可以查看arm文件夾下的VERSIONS文件,顯示如下:

    Versions
    gcc-3.3.2
    glibc-2.3.2
    binutils-head
    Tool chain binutils configuration:
    ../binutils-head/configure …
    Tool chain glibc configuration:
    ../glibc-2.3.2/configure …
    Tool chain gcc configuration
    ../gcc-3.3.2/configure …

    可以看到,這個交叉編譯工具確實集成了binutils、gcc、glibc這幾個軟件,而每個軟件也都有比較復雜的配置信息,讀者可以查看VERSIONS文件了解相關信息。

    接下來,在環境變量PATH中添加路徑,就可以直接使用arm-Linux-gcc命令了。

    $ export PATH=$PATH:/usr/local/arm/3.3.2/bin

    把交叉開發工具鏈的路徑添加到環境變量PATH中,這樣可以方便地在Bash或者Makefile中使用這些工具。通常可以在環境變量的配置文件有幾個:

    (1)profile類文件:用戶登錄時第一次僅運行一次,profile類文件包括每個用戶主目錄下的.profile文件和/etc/profile等。哪個用戶登錄就會運行主目錄下的.profile文件的腳本。

    (2)bashrc類文件:每當打開bash shell時(例如,當打開一個虛擬終端時)運行改腳本文件。bash類文件包括每個用戶主目錄下的.bashrc文件和/etc/bash.bashrc等。

    把環境變量配置的命令添加到其中一個文件中即可。

    $ arm-linux-gcc –v /*查看交叉編譯器的版本信息*/
    Reading specs from /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/ specs Configured
    with: ../gcc-3.3.2/configure
    --target=arm-linux --with-cpu=strongarm1100
    --prefix=/usr/local/arm/3.3.2
    i686-pc-linux-gnu --with-headers=/work/kernel.h3900/include
    --enable-threads=pthreads --enable-shared --enable-static --enable-languages=c,c++
    Thread model: posix
    gcc version 3.3.2

    從上面打印的版本信息中可以看到“--prefix=/usr/local/arm/3.3.2”,這就是交叉編譯器安裝的路徑。它是在編譯前通過prefix選項配置的。所以,這個工具鏈安裝的路徑必須是/usr/local/arm/3.3.2。


   熱點鏈接:

   1、什么是嵌入式系統
   2、嵌入式系統的硬件架構
   3、嵌入式Linux開發學習
   4、六種常見嵌入式操作系統
   5、嵌入式linux入門要學什么

更多新聞>> 

主站蜘蛛池模板: 亚洲高清在线播放 | 欧美黑白配性xxxxx | 欧美日韩性猛交xxxxx免费看 | www.午夜视频| 全免费一级毛片在线播放 | 在线观看日韩视频 | 九九这里只精品视在线99 | 久久精品国产精品亚洲毛片 | 国产精品操 | 亚洲日本视频 | 天堂成人在线视频 | 国产精欧美一区二区三区 | 国产精品欧美亚洲韩国日本不卡 | 日本高清视频免费在线观看 | 中文字幕日韩亚洲 | 91精品久久久久 | 欧美白人黑人xxxx猛交 | 不卡视频免费在线观看 | 不卡视频在线 | 麻豆播放| 国产黄色a级 | 国产精品天天看特色大片不卡 | 久久香蕉国产线看观看亚洲片 | 精品一区二区三区在线观看l | 啪啪拍网站 | 日本h视频在线 | 亚洲黄色小视频 | 亚洲操操| 免费久久一级欧美特大黄 | 久青草免费视频手机在线观看 | 亚洲成人中文 | 午夜视频一区 | 在线观看日本三级 | 目韩一区二区三区系列片丶 | 欧美性猛交一区二区三区精品 | 免费成人高清 | 国产欧美日韩亚洲 | 免费一级毛片在线观看 | 欧美日韩国产欧美 | 国产男女猛烈无遮档免费视频网站 | 久久99精品久久久久久欧洲站 |