青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

runsisi

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  45 隨筆 :: 15 文章 :: 26 評(píng)論 :: 0 Trackbacks

盡管是老生常談,但是在比較之前,還是先明確一下什么叫做工具鏈。

LFS/CLFS工具鏈?zhǔn)且惶子糜趶腃/C++源代碼生成可執(zhí)行文件的軟件組件適當(dāng)?shù)亟M合在一起形成的系統(tǒng)。它包括4大部分,缺一不可:

1、一套頭文件,包含了這些源代碼所需要訪問的系統(tǒng)接口。

2、binutils,包含一些處理二進(jìn)制可執(zhí)行文件所需的工具,如匯編器、連接器等等。

3、gcc,包含了編譯C/C++源代碼所需的工具,并且還能自動(dòng)調(diào)用相關(guān)的binutils工具來完成生成源代碼的工具

4、glibc,包含了系統(tǒng)接口的具體實(shí)現(xiàn)。

在上面的定義中,請(qǐng)注意這些軟件必須適當(dāng)?shù)亟M合,才能形成完整的工具鏈。那么怎么才算適當(dāng)組合呢?當(dāng)然,這個(gè)工具鏈必須能夠發(fā)揮作用,也就是確實(shí)能夠編譯出目標(biāo)代碼,然后才能算適當(dāng)組合。

那么,一個(gè)適當(dāng)組合的工具鏈應(yīng)當(dāng)具有什么特點(diǎn)呢?一般我們把工具鏈運(yùn)行的機(jī)器稱為host,所產(chǎn)生的代碼稱為target。那么對(duì)于工具鏈的要求便是:它必須要能在host上運(yùn)行,所產(chǎn)生的代碼必須能在target上運(yùn)行。再進(jìn)一步分析:

1、頭文件:必須是針對(duì)target的,因?yàn)槭褂眠@個(gè)工具鏈編譯的源代碼需要訪問的系統(tǒng)接口是trget上的。

2、binutils:必須能在host上運(yùn)行,然而產(chǎn)生target的代碼。

3、gcc:和binutils一樣。不過這里要注意的是,gcc自身帶有一個(gè)庫(kù),稱為libgcc,它必須是target上的代碼。

4、glibc:必須是target上的代碼。

有了這些基本認(rèn)識(shí),讓我們來看一看一些實(shí)際的工具鏈構(gòu)造過程。

LFS工具鏈構(gòu)造順序:binutils p1->gcc p1->頭文件->glibc->adjust->gcc p2->binutils p2

其中最后兩步應(yīng)該可以互換,但頭兩步不行。如果你有留意編譯過程,會(huì)發(fā)現(xiàn),當(dāng)gcc編譯的時(shí)候,一旦內(nèi)部編譯第一次gcc完成,產(chǎn)生了xgcc文件,隨后的編譯就會(huì)利用新編譯的gcc以及第一遍的binutils,而不是宿主的gcc和binutils。

正如youbest指出的,第一遍的binutils和gcc存在的意義,僅僅是為了能編譯出glibc。而glibc的編譯需要工具鏈所有其它內(nèi)容,包括binutils,gcc和頭文件。

LFS不使用交叉編譯,因此host和target永遠(yuǎn)是一樣的。在編譯參數(shù)中,我們永遠(yuǎn)看不到--host和--target的身影。但是,由于工具鏈的引用路徑需要反復(fù)變化,因此我們需要通過修改specs來更改。這點(diǎn)是LFS比較容易出錯(cuò)的地方。

CLFS顧名思義,是要采用交叉編譯的。其構(gòu)造順序如下:

頭文件->cross binutils->cross-gcc c->glibc->gcc final (c/c++)

我們首先看到頭文件被放在了開頭。這不是必須的,它完全可以放在glibc之前。cross-gcc只能編譯出C編譯器,因?yàn)檫@時(shí)候工具鏈還不全,glibc還不存在,不可能編譯出C++編譯器。然后構(gòu)建glibc。之后,我們才能編譯出C++編譯器,完成我們的工具鏈。

CLFS-SYSROOT的工具鏈稍有不同,順序如下:

頭文件->cross-binutils->glibc頭文件->cross-gcc c->gibc->gcc-final (c/c++)

我們看到這里多了一個(gè)glibc頭文件的安裝。事實(shí)上,這是由于這里編譯的gcc是要用sysroot的緣故。在gcc/configure里面有一段代 碼,大家在vi里面輸入/inhibit_libc=false就可以發(fā)現(xiàn),在交叉編譯,而沒有SYSROOT的情況下,inhibit_libc的值會(huì) 成為true,而要是sysroot了,就false了。

這個(gè)變量的作用,如同有關(guān)的注釋所述,是用來關(guān)閉gcc對(duì)glibc頭文件的依賴。因此,在sysroot下我們才會(huì)需要這樣一個(gè)安裝glibc頭文件的步驟。

我想在sysroot下消除這個(gè)步驟,之前測(cè)試過這個(gè)補(bǔ)丁可行:

使用這個(gè)sed命令打個(gè)補(bǔ)丁即可:

cp gcc/configure{,.orig}

sed -e 's/inhibit_libc=false/inhibit_libc=true/g' gcc/configure.orig > gcc/configure

不過最近發(fā)現(xiàn)有更簡(jiǎn)單的方法:在configure的時(shí)候加個(gè)參數(shù)--with-newlib即可。建議采用這個(gè)方法,因?yàn)椴恍枰蛉魏窝a(bǔ)丁。

在此再說一句,工具鏈構(gòu)建過程中,編譯腳本對(duì)于是否交叉編譯的判斷非常簡(jiǎn)單,只要host!=target,就會(huì)被認(rèn)為正在交叉編譯。這也就是為什么 CLFS中使用的$CLFS_HOST通常都是i686-cross-linux-gnu這樣的形式。原因很簡(jiǎn)單,因?yàn)橐_保$CLFS_HOST 與$CLFS_TARGET不同。這樣,你完全可以在i686上"交叉編譯"i686的代碼。

這點(diǎn)非常重要,這意味著我們不需要打任何補(bǔ)丁,即可利用CLFS和CLFS-SYSROOT代替LFS來完成系統(tǒng)。對(duì)于想做Multilib的朋友,這也是一個(gè)福音。畢竟,CLFS-SYSROOT比起CLFS和LFS來,節(jié)省了大量的編譯過程。

最后,我們來理解一下如何作CCLFS工具鏈。這意味著我們要在一個(gè)平臺(tái)上構(gòu)建在第二個(gè)平臺(tái)上運(yùn)行、生成第三個(gè)平臺(tái)上代碼的工具鏈。我們用build表示 構(gòu)建工具鏈的機(jī)器,host表示工具鏈要運(yùn)行的機(jī)器,target表示工具鏈生成的代碼所在機(jī)器。而在工具鏈組件上,host-target binutils表示該binutils在host上運(yùn)行,要生成target的代碼。

步驟如下:

host 頭文件->build-host binutils->build-host gcc c->host glibc->target 頭文件->build-target binutils->build-target gcc c->target glibc->host-target binutils->host-target gcc final (c/c++)

注意事項(xiàng)如下。首先,頭文件必須在相應(yīng)的glibc之前安裝。其次,build-target的binutils和gcc在這里的目的是生成target glibc。而build-host binutils 還會(huì)被構(gòu)建host-target binutils和gcc的過程使用到。最后,前兩次的gcc都可以只生成c編譯器,因?yàn)樗麄兊哪康亩贾皇巧蒰libc。只有最后一次gcc需要完整生成。

from: http://www.linuxsir.org/bbs/thread325648.html


posted on 2009-06-25 11:56 runsisi 閱讀(562) 評(píng)論(0)  編輯 收藏 引用 所屬分類: embedded system

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产你懂的| 亚洲男同1069视频| 久久伊人免费视频| 亚洲免费一在线| 久久九九精品99国产精品| 欧美日韩亚洲系列| 国产欧美精品日韩精品| 亚洲影院污污.| 麻豆9191精品国产| 亚洲午夜激情网页| 国产精品日韩欧美一区| 亚洲一品av免费观看| 最新亚洲视频| 欧美中文在线观看| 国产精品五月天| 亚洲免费婷婷| 亚洲国产高清高潮精品美女| 国内精品久久久久久久97牛牛| 亚洲毛片在线免费观看| 久久久久久久久综合| 麻豆国产va免费精品高清在线| 久久久久国产精品午夜一区| 欧美性猛交xxxx乱大交退制版 | 欧美亚洲视频在线看网址| 国产精品久久激情| 欧美日韩精品免费观看视频完整| 久久精品国产亚洲a| 国产欧美一区二区精品仙草咪| 一本久道久久综合中文字幕| 国产在线国偷精品产拍免费yy| 亚洲欧美激情视频| 亚洲综合欧美| 国产美女精品免费电影| 欧美一级在线播放| 欧美在线视频一区二区三区| 红桃视频国产一区| 欧美国产日韩一区二区三区| 欧美国产日本在线| 国产精品久久久久aaaa樱花| 欧美一区日韩一区| 亚洲综合好骚| 夜夜嗨av一区二区三区四季av | 午夜精品理论片| 亚洲精品午夜| 亚洲与欧洲av电影| 一本色道久久综合亚洲二区三区 | 久久国产精品一区二区| 欧美一区在线直播| 亚洲精品在线免费观看视频| 亚洲高清自拍| 另类图片国产| 欧美77777| 国产免费成人在线视频| 日韩视频精品在线| 亚洲高清影视| 久久精品免视看| 久久久久国产免费免费| 国产一本一道久久香蕉| 久久综合网hezyo| 亚洲国产99精品国自产| 亚洲免费影院| 欧美视频在线观看| 亚洲一区国产精品| 久久激情一区| 国产日韩在线一区| 亚洲男人的天堂在线| 亚洲午夜精品视频| 亚洲每日在线| 正在播放亚洲| 国产精品一区二区久激情瑜伽| 亚洲激情电影在线| 久久精品二区亚洲w码| 国产伦精品一区二区三区高清| 久久国产视频网站| 欧美大片国产精品| 久久精品中文| 国产精品成人aaaaa网站| 麻豆久久婷婷| 国产欧亚日韩视频| 99视频在线观看一区三区| 亚洲国产成人在线| 久久精品国产精品亚洲| 亚洲一区中文| 欧美成人综合| 欧美国产先锋| 国模吧视频一区| 亚洲一区二区三区免费在线观看| 亚洲第一页自拍| 久久精品国产第一区二区三区| 亚洲人成在线播放网站岛国| 欧美先锋影音| 免费欧美在线视频| 久久精品二区三区| 亚洲蜜桃精久久久久久久| 久久综合久色欧美综合狠狠| 亚洲影视在线| 中文在线不卡视频| 最新国产拍偷乱拍精品| 国产亚洲欧美一区| 精品999网站| 精品1区2区3区4区| 国产一级一区二区| 国内自拍一区| 国产专区精品视频| 欧美亚洲日本国产| 日韩亚洲欧美一区| 一区二区动漫| 国产日韩欧美91| 欧美成人精品不卡视频在线观看 | 黄色成人av网站| 欧美一区二区三区在线免费观看| 欧美国产一区视频在线观看 | 亚洲欧美日韩一区在线观看| 欧美日韩国产一区二区三区地区| 亚洲黑丝一区二区| 一本久道综合久久精品| 免费在线国产精品| 欧美色123| 亚洲午夜电影| 亚洲女同精品视频| 久久久av毛片精品| 欧美日本国产| 欧美日韩在线播放| 国产精品乱码久久久久久| 欧美日韩精品在线播放| 欧美少妇一区二区| 国产乱码精品| 99精品久久| 久久精品亚洲一区二区| 久久久99精品免费观看不卡| 亚洲国产精品t66y| 新67194成人永久网站| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美高清免费| 亚洲二区在线| 久久黄金**| 亚洲一区三区电影在线观看| 免费观看成人www动漫视频| 国产日韩欧美高清免费| 亚洲黄色在线| 亚洲免费一区二区| 欧美不卡高清| 欧美国产日韩免费| 蜜臀91精品一区二区三区| 国产一区二区三区观看 | 亚洲图片自拍偷拍| 性欧美xxxx大乳国产app| 久久嫩草精品久久久精品| 亚洲国产精品va在线看黑人| 国产精品国产a级| 另类激情亚洲| 亚洲男女自偷自拍| 亚洲精品自在久久| 美日韩精品视频免费看| 亚洲女女做受ⅹxx高潮| 午夜日韩激情| 一区二区激情| 老司机免费视频一区二区三区| 亚洲一卡久久| 国产一区二区三区av电影| 久久色中文字幕| 久久不射网站| 亚洲第一毛片| 亚洲第一主播视频| 蜜桃av综合| 亚洲一区视频在线| 久久国产66| 99re热这里只有精品免费视频| 91久久精品国产91久久性色tv | 午夜精品福利电影| 亚洲小视频在线| 亚洲高清二区| 亚洲一区二区四区| 亚洲精品国产拍免费91在线| 欧美精品导航| 久久久夜夜夜| 国产日产欧美精品| 亚洲第一综合天堂另类专| 欧美日韩理论| 一区二区三区色| 亚洲激情成人| 另类国产ts人妖高潮视频| 一区二区三区偷拍| 欧美黄色大片网站| 国产精品中文字幕在线观看| 久久亚洲综合网| 久久精品成人| 麻豆视频一区二区| 亚洲精品黄色| 亚洲激情第一页| 亚洲精品一级| 亚洲精品日韩精品| 亚洲人成绝费网站色www| 亚洲国产精品第一区二区| 91久久国产自产拍夜夜嗨| 亚洲美女中出| 亚洲女与黑人做爰| 羞羞答答国产精品www一本 | 亚洲日本理论电影| 国产日韩在线播放|