欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CLFS2.0學(xué)習

主要是看了youbestLFS2原理分析的文章,似懂非懂的,想說(shuō)什么又說(shuō)不出來(lái)

環(huán)境變量的設置

glibc-2.4-crosscompile_timezone_fix-1.patch 

剛剛學(xué)習了CLFS-1.0.0rc4的書(shū),了解其工具鏈制作過(guò)程,這里根據youbest的文章學(xué)習CLFS2的工具鏈制作方式

同步閱讀版本號SVN-2.0.0-20060831-ARM書(shū),好像這里生成的恰好是arm-linux.gcc….

 

同樣先是環(huán)境變量設置,CLFS_HOST,CLFS_TARGET=”arm-unknow-linux-gnu”,還先設置了文件系統和passwd,group,log文件等,

 

具體工具鏈的制作:

只需要${CLFS}/cross-tools,不需要CLFS1中的${CLFS}/tools目錄了,應該可以理解直接把${CLFS}看出clfs1中的tools目錄

1,    Linux-Headers文件的安裝

Youbest說(shuō)的要在復制前加一句  make include/linux/version.h沒(méi)看懂,不知道何意思

2,    交叉Binutils安裝

    ../binutils-2.17/configure --prefix=${CLFS}/cross-tools \
   --host=${CLFS_HOST} --target=${CLFS_TARGET} --with-sysroot=${CLFS} \
   --disable-nls --enable-shared --disable-multilib

 

參數的理解跟clfs1一樣,里面最關(guān)鍵的是,也是新加入的就是 with-sysroot=${CLFS}參數了,是clfs2的精華,把$CLFS目錄作為根目錄

 

這個(gè)交叉版本binutils是用主系統的binutilsgcc實(shí)現的,我們的主系統是i386(目標系統是arm),這個(gè)用主系統中工具鏈編譯出來(lái)的binutils當然是在主系統上運行的,

3,  Glibc頭文件的安裝

先看后面的gcc

BOOK是為了編譯arm的,為了glibc支持arm,需要glibc-ports-2.4

Echo install_root=${CLFS} > configparms, 指定安裝的根目錄

CC=gcc ../glibc-2.4/configure --prefix=/usr \
   --host=${CLFS_TARGET} --build=${CLFS_HOST} \
   --with-headers=${CLFS}/usr/include --cache-file=config.cache

Gcc用的是主系統的gcc,注意最后安裝的目錄其實(shí)是${install_root}/prefix下,注意--hostbuild的意思,這里hostTARGET,buildHOST,這樣,第4步中的gcc就指定了TARGET的信息了

--with-headers指定使用的頭文件,glibc唯一必須要的頭文件就是內核頭文件,因為glibc也是支持都平臺的,這樣第2步內核頭文件必須先于glibc安裝,這樣glibc才“知道”準確的內核信息

Makeinstall-headers,  安裝glibc的頭文件,不需要交叉版gcc(此時(shí)也沒(méi)有),相反交叉版gcc的得到是需要這里的頭文件,因而先用主系統的gcc得到這些交叉用的頭文件先

4,  交叉GCC,靜態(tài)

    ../gcc-4.1.1/configure --prefix=${CLFS}/cross-tools \
    --host=${CLFS_HOST} --target=${CLFS_TARGET} --disable-multilib \
    --with-sysroot=${CLFS} --disable-nls --disable-shared \
    --enable-languages=c

交叉版靜態(tài)gcc被安裝到${CLF}/cross-tools,只編譯c語(yǔ)言部分,同時(shí)以${CLFS}為根目錄。

這里要深刻理解交叉編譯的意思,明確要得到交叉版gcc要編譯出在目標體系上運行的二進(jìn)制代碼,需要知道符合目標體系的頭文件,主要是內核頭文件何glibc頭文件,另外,自身交叉版gcc也要“知道”目標體系的細節,這就要求它“出生”就知道,這就要求編譯生成交叉版gcc是就先要有目標系統的glibc頭文件,這就到了第3步中glibc頭文件的安裝

5,  此時(shí)有了交叉版gcc和交叉版binutils,還有目標系統的glibc頭文件,正式編譯glibc庫,

   echo"install_root=${CLFS}" > configparms

BUILD_CC="gcc" CC="${CLFS_TARGET}-gcc" \
    AR="${CLFS_TARGET}-ar" RANLIB="${CLFS_TARGET}-ranlib" \
    ../glibc-2.4/configure --prefix=/usr --libexecdir=/usr/lib/glibc \
    --host=${CLFS_TARGET} --build=${CLFS_HOST} \
    --disable-profile --enable-add-ons \
    --with-tls --enable-kernel=2.6.0 --with-__thread \
    --with-binutils=${CLFS}/cross-tools/bin --with-headers=${CLFS}/usr/include \
    --cache-file=config.cache

這里根clfs1中的glibc編譯很相似,最后安裝到的是${install_root}/usr${install_root}/usr/lib/glibc

接下來(lái)的locales安裝就可以省略,因為localedefglibc中標準程序,而glibc是用于目標平臺的

6,  最終動(dòng)態(tài)交叉版gcc

這里要搞清楚整個(gè)工具鏈的由來(lái),這次的gcc,還是由主系統的gccbinutils生成,只是生成的是動(dòng)態(tài)鏈接的,包含cc++,鏈接的C庫也是主系統的,這樣出來(lái)的gcc才能在主系統上運行,注意不是鏈接的新編出來(lái)的glibc,(這里感覺(jué)youbest說(shuō)的有點(diǎn)矛盾了,第一遍的靜態(tài)的交叉gcc,只包含c,只需要目標體系glibc頭文件 ,第二編動(dòng)態(tài)交叉gcc,包含cc++,應該需要一部分鏈接到主系統glibc,一部分鏈接到目標體系glibc,如果這里動(dòng)態(tài)交叉gcc生成完全不鏈接目標體系glibc,那么完全可以只編一遍交叉gcc了,youbest是說(shuō)編譯一個(gè)支持交叉的c++,必須有一個(gè)編譯好的用于目標體系的glibc,所以還是說(shuō)得出最終的完整的交叉版gcc是要鏈接到目標體系的glibc的)

../gcc-4.1.1/configure --prefix=${CLFS}/cross-tools \
    --host=${CLFS_HOST} --target=${CLFS_TARGET} --disable-multilib \
    --with-sysroot=${CLFS} --disable-nls --enable-shared \
    --enable-languages=c,c++ --enable-__cxa_atexit \--enable-c99 --enable-long-long

   

 

至此,交叉工具鏈/cross-tools的基本工具就夠了

 

再準確理解with-sysroot這個(gè)參數

 

先要了解gcc在編譯過(guò)程中搜索頭文件的順序,已經(jīng)binutil或者說(shuō)ld工具搜索庫文件的路徑順序,可以理解這個(gè)with-sysroot就是改變gccld搜索的默認路徑的方式,在它們默認搜索路徑,比如/usr/include,/lib,/usr/lib前加上{--with-sysroot}路徑,當沒(méi)有這個(gè)參數時(shí),{--with-sysroot}表示的是空字符串,在這里,我們指定了with-sysroot,那么在編譯的時(shí)候查找頭文件以及連接時(shí)查找動(dòng)態(tài)或靜態(tài)庫就自動(dòng)到with-sysroot指定的路徑下來(lái)找,這個(gè)參數只支持交叉編譯的時(shí)候

 

 在編譯交叉binutils和交叉靜態(tài)gcc時(shí)用到了with-sysroot,那么用這些交叉工具編譯交叉的glibc時(shí),他們搜索頭文件和鏈接庫文件,會(huì )到{CLFS}/usr/include,{CLFS}/lib等目錄下去找

 

在接下來(lái)的第六章基本的目標系統的構建,都是利用我們做好的交叉工具鏈和主系統的一些實(shí)用程序編出來(lái)的,這些程序是不能在本地系統運行的,是用于目標系統的,這章的包編譯的順序就不那么嚴格了,因為不象LFS中編譯一個(gè)新工具,力馬就使用這個(gè)工具的,這時(shí)交叉工具鏈中的binutilsgccwith-sysroot發(fā)揮著(zhù)重要作用,它們在沒(méi)有路徑補丁的情況下,能“順利”著(zhù)找著(zhù)用于目標體系的頭文件和庫

 

考察這種用主系統的工具包和交叉工具鏈共同編譯用于目標系統的程序的“純潔度”

交叉工具鏈肯定沒(méi)問(wèn)題,主系統的工具都是一些處理文本之類(lèi)的與平臺無(wú)關(guān)的文件,不會(huì )影響系統純凈度,只有當主系統提供的命令不適合或版本太低,就需要象工具鏈中filegroff一樣編譯一個(gè)了,而其實(shí)它們也不是交叉版的

 

 

再看第六章中編出的程序的安裝問(wèn)題,盡管這些程序配置選項中prefix/usr,但安裝的時(shí)候都帶有 DESTDIR=${CLF} 選項,其實(shí)還是安裝到了DESTDIR/prefix下,跟--with-sysroot有點(diǎn)相似啊

 

 

最后使目標系統可啟動(dòng),就比較好理解了,跟clfs1也類(lèi)似,看看就明白了,關(guān)于armbook中沒(méi)有具體提到,就自己做bootloader

 

 

正在請教youbest問(wèn)題ing


 

 

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
交叉編譯器 制作分析(CLFS2.0原理分析)
Building a GNU/Linux ARM Toolchain (from scratch)
交叉編譯gcc
arm-linux-gcc 3.4.4
Cross Toolchain-交叉編譯工具鏈
建立ARM交叉編譯環(huán)境 (arm
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久