色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看


嵌入式培訓(xùn)資料:搭建交叉編譯環(huán)境

分享到:
           

    搭建交叉編譯環(huán)境是嵌入式開(kāi)發(fā)的第一步,也是關(guān)鍵的一步。不同的體系結(jié)構(gòu)、不同的操作內(nèi)容甚至是不同版本的內(nèi)核,都會(huì)用到不同的交叉編譯器。選擇交叉編譯器非常重要,有些交叉編譯器經(jīng)常會(huì)有部分的BUG,都會(huì)導(dǎo)致后的代碼無(wú)法正常運(yùn)行。

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

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

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

    $ 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

    此時(shí)在/usr/local/arm/3.3.2/bin/下已經(jīng)出現(xiàn)了很多交叉編譯工具。用戶可以查看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 …

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

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

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

    把交叉開(kāi)發(fā)工具鏈的路徑添加到環(huán)境變量PATH中,這樣可以方便地在Bash或者M(jìn)akefile中使用這些工具。通常可以在環(huán)境變量的配置文件有幾個(gè):

    (1)profile類(lèi)文件:用戶登錄時(shí)第一次僅運(yùn)行一次,profile類(lèi)文件包括每個(gè)用戶主目錄下的.profile文件和/etc/profile等。哪個(gè)用戶登錄就會(huì)運(yùn)行主目錄下的.profile文件的腳本。

    (2)bashrc類(lèi)文件:每當(dāng)打開(kāi)bash shell時(shí)(例如,當(dāng)打開(kāi)一個(gè)虛擬終端時(shí))運(yùn)行改腳本文件。bash類(lèi)文件包括每個(gè)用戶主目錄下的.bashrc文件和/etc/bash.bashrc等。

    把環(huán)境變量配置的命令添加到其中一個(gè)文件中即可。

    $ 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”,這就是交叉編譯器安裝的路徑。它是在編譯前通過(guò)prefix選項(xiàng)配置的。所以,這個(gè)工具鏈安裝的路徑必須是/usr/local/arm/3.3.2。


   熱點(diǎn)鏈接:

   1、什么是嵌入式系統(tǒng)
   2、嵌入式系統(tǒng)的硬件架構(gòu)
   3、嵌入式Linux開(kāi)發(fā)學(xué)習(xí)
   4、六種常見(jiàn)嵌入式操作系統(tǒng)
   5、嵌入式linux入門(mén)要學(xué)什么

更多新聞>> 

主站蜘蛛池模板: 色播影院性播影院私人影院 | 不卡无在线一区二区三区观 | 啪啪激情婷婷久久婷婷色五月 | 色先锋影音岛国av资源 | 2019最新国产不卡a | 欧洲熟妇色xxxx欧美老妇性 | 亚洲成av人片在线观看无码不卡 | 色福利影院 | 伊人色综合一区二区三区影院视频 | 波多野结衣线AV免费观看 | 亚洲精品无码久久久影院相关影片 | 91麻豆精产国品一二三产区区 | 亚洲精品久久久久久久久久无码 | 国产精品乱子乱XXXX | h肉动漫无码无修6080动漫网 | 日本特大A级猛片在线观看 国产免费AV片在线播放唯爱网 | 玩弄放荡人妇系列AV在线网站 | 无码AV高潮喷水无码专区线 | 玩弄放荡人妇系列AV在线网站 | 黄色在线观看免费 | 公牛巨鞭大战人妻H | 亚洲AV无码专区在线厂 | 国产精品久久毛片 | 免费看又黄又爽又猛的视频软件 | 国产超爽人人爽人人做人人爽 | 韩国精品网站 | 精品无码国产一区二区三区AV | 无码人妻精品一区二区蜜桃百度 | 深夜A级毛片免费视频 | 亚洲大尺度无码无码专线一区 | 国产偷窥熟妇高潮呻吟 | 亚洲日韩欧洲无码a∨夜夜 午夜福利麻豆国产精品 | 日本丰满人要无码视频 | 足疗店女技师按摩毛片 | 免费做A爰片久久毛片A片 | 婷婷亚洲精品久久无码一区二区三区 | 午夜福利国产在线观看1 | 亚洲国产精品无码久久一线 | 男女无遮挡XX00动态图120秒 | 欧美群伦性艳史黄94 | 免费精品一区二区三区第35二区 |