freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

《clfs的制作》ppt課件-文庫吧

2025-09-17 23:32 本頁面


【正文】 unwind=yes ? echo libc_cv_c_cleanup=yes ? echo libc_cv_mips_tls=yes ? echo install_root=$CLFS configparms ? CC=gcc ../\ ? host=${CLFS_TARGET} build=${CLFS_HOST} \ ? withheaders=${CLFS}/usr/include cachefile= ? 這個編譯參數(shù)說明 gcc用的是主系統(tǒng)的 gcc,這里需要注意的是 prefix=/usr雖然指定的是 /usr目錄,但實(shí)際上最后安裝到的是 $ {install_root}/usr下,如果沒有指定 install_root,那自然是安裝到了 /usr,而因?yàn)榍懊嬷付?install_root 的目錄,實(shí)際上最后安裝到了 ${CLFS}/usr下。 ? withheaders指定了使用的頭文件的目錄, glibc唯一必須要的頭文件就是內(nèi)核的頭文件,因?yàn)?glibc也是可以支持多種內(nèi)核平臺的,比如 BSD,所以它也必須了解所服務(wù)的內(nèi)核的所有特征細(xì)節(jié),因此就不難理解為什么內(nèi)核頭文件必須先于 glibc的頭文件安裝,只有這樣 glibc才能“了解”到準(zhǔn)確的內(nèi)核信息。 glibc頭文件 (3) ? make installheaders ? install dv ${CLFS}/usr/include/bits ? cp v bits/ ${CLFS}/usr/include/bits ? touch ${TARGET_DIR}/usr/include/bits/ ? touch ${CLFS}/usr/include/gnu/ ? cp v ../glibc \ ? ${CLFS}/usr/include/bits ? cd .. ? rm rf ? popd (1) ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? patch Np1 i ${DOWNLOADDIR}/ ? patch Np1 i ${DOWNLOADDIR}/ ? mkdir v ../gccbuild ? cd ../gccbuild ? ../${CLFS}/crosstools \ host=${CLFS_HOST} target=${CLFS_TARGET} disablemultilib \ withsysroot=${CLFS} disablenls disableshared \ enablelanguages=c ? 從參數(shù)上理解就是, gcc將被安裝到 ${CLFS}/crosstools,而且只編譯 c語言部分,同時將 ${CLFS}所定義的目錄作為根目錄( withsysroot)。如果要生成支持C++的交叉版的 GCC需要目標(biāo)版的 Glibc庫,而現(xiàn)在我們還沒有目標(biāo)版的 Glibc庫,還好編譯 Glibc只需要支持 C的交叉版 GCC,而支持 C的交叉版 GCC只需要 Glibc頭文件就可以編譯出來。這樣看來第一次編譯的 GCC的使命就十分明顯了:他就是用來編譯接下來的 Glibc庫。這里第二次用到 withsysroot這個參數(shù)。 (2) ? make allgcc ? make installgcc ? cd .. ? rm rf gccbuild/ ? popd glibc (1) ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? tar xvf ${DOWNLOADDIR}/ ? mv v ? patch Np1 i ${DOWNLOADDIR}/ ? patch Np1 i ${DOWNLOADDIR}/ ? patch Np1 i ${DOWNLOADDIR}/ ? patch Np1 i ${DOWNLOADDIR}/ ? ln s nptl/sysdeps/unix/sysv/linux/i386 ports/sysdeps/unix/ ? mkdir v ../glibcbuild ? cd ../glibcbuild ? echo libc_cv_forced_unwind=yes ? echo libc_cv_c_cleanup=yes ? echo install_root=${CLFS} configparms glibc (2) ? BUILD_CC=gcc CC=${CLFS_TARGET}gcc \ ? AR=${CLFS_TARGET}ar RANLIB=${CLFS_TARGET}ranlib \ ? ../\ ? libexecdir=/usr/lib/glibc host=${CLFS_TARGET} build=${CLFS_HOST} \ ? disableprofile enableaddons withtls enablekernel= \ ? with__thread withbinutils=${CLFS}/crosstools/bin \ ? withheaders=${CLFS}/usr/include cachefile= ? BUILD_CC使用的是主機(jī)的 GCC而不是剛才編譯生成的交叉版 GCC,這是運(yùn)行于I386上生成的二進(jìn)制執(zhí)行文件也是運(yùn)行于 I386上的,這是來編譯一些臨時文件用的。 CC指定的是剛編譯出來的交叉版的 GCC,這里我們編譯生成的 Glibc是目標(biāo)版上運(yùn)行的所以要用到交叉版的 GCC。 AR和 RANLIB是 binutils中的工具,它們也是在編譯過程中需要用到的,而且是用來處理目標(biāo)平臺的二進(jìn)制文件,所以它們也是使用交叉編譯用的版本。 prefix=/usr libexecdir=/usr/lib/glibc前面已經(jīng)提過是在 $CLFS目錄下的 /usr和 /usr/lib/glibc。 host指定了生成的 Glibc是運(yùn)行于目標(biāo)體系的,這與剛才編譯的 Binutils和 GCC不同, Binutils和 GCC是交叉版,他們運(yùn)行于主系統(tǒng)( i386)生成的 2進(jìn)制文件運(yùn)行于目標(biāo)平臺。 withbinutils=${CLFS}/crosstools/bin則是表明使用的 binutils是用的交叉版的。 glibc (3) ? make ? make instal ? 上面的命令沒有安裝 locale(用另一種語言反饋信息 ),所以用下面的命令來安裝它們 ? make localedata/installlocales ? cd .. ? rm rf ? popd Glibc ? cat ${CLFS}/etc/ EOF ? Begin /etc/ ? passwd: files ? group: files ? shadow: files ? hosts: files dns ? works: files ? protocols: files ? services: files ? ethers: files ? rpc: files ? End /etc/ ? EOF ? 我們需要建立 /etc/ 文件。因?yàn)樵谶@個文件丟失或不正確的情況下, Glibc 會使用默認(rèn)配置,而 Glibc 的默認(rèn)配置無法很好地在網(wǎng)絡(luò)環(huán)境下工作。并且我們也需要設(shè)置自己的時區(qū)。 ? TZDIR=${CLFS}/usr/share/zoneinfo ${CLFS}/usr/bin/tzselect ? cp v removedestination ${CLFS}/usr/share/zoneinfo/Asia/Shanghai \ ? ${CLFS}/etc/localtime 配置動態(tài)鏈接庫加載程序 ? cat ${CLFS}/etc/ EOF ? Begin /etc/ ? /usr/local/lib ? /opt/lib ? End /etc/ ? EOF ? 默認(rèn)情況下,動態(tài)鏈接庫加載程序 (/lib/)搜索 /lib 和 /usr/lib 目錄來尋找程序需要使用的動態(tài)連接庫。但是,如果某些庫在這兩個目錄之外,你就需要把它們的路徑加到 /etc/ 文件里,以便動態(tài)鏈接庫加載程序能夠找到它們。 /usr/local/lib 和 /opt/lib 是兩個經(jīng)常包含動態(tài)連接庫但又不在默認(rèn)目錄中的目錄,我們要把它們添加到動態(tài)鏈接庫加載程序的搜索路徑中 ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? patch Np1 i ${DOWNLOADDIR}/ ? patch Np1 i ${DOWNLOADDIR}/ ? mkdir v ../gccbuild ? cd ../gccbuild ? ../${CLFS}/crosstools \ ? host=${CLFS_HOST} target=${CLFS_TARGET} disablemultilib \ ? withsysroot=${CLFS} disablenls enableshared \ ? enablelanguages=c,c++ enable__cxa_atexit \ ? enablec99 enablelonglong enablethreads=posix ? 這里加入了對 C++的系列支持,多線程編程支持。在這里第三次的出現(xiàn)了 withsysroot這個參數(shù),它是建立交叉工具鏈的關(guān)鍵,也將解釋為什么需要兩次編譯 GCC。 ? make ? make install ? cd .. ? rm rf ? popd withsysroot參數(shù) ? withsysroot參數(shù) GCC在執(zhí)行編譯時是默認(rèn)從/usr/include中找頭文件來編譯的,而 binutils中的工具 ld是從 /lib /usr/lib、 LD_LIBRARY_PATH、/etc/庫或者靜態(tài)庫進(jìn)行鏈接操作的,也就是說他們都會到根目錄去尋找相關(guān)的東西,而我們進(jìn)行交叉編譯如果去連接主機(jī)的這些庫和頭文件,這樣生成的二進(jìn)制執(zhí)行文件是不能在目標(biāo)板上運(yùn)行的。而 withsysroot參數(shù)的功能正是讓交叉工具以 withsysroot指定的目錄作為根目錄,在這個下面尋找相關(guān)文件。 withsysroot參數(shù) ? 三次 withsysroot參數(shù)分別出現(xiàn)在 Binutils、 GCC第一次和 GCC第二次中。 ? 第一次, Binutils下使用,目的是讓 Binutils在查找?guī)斓臅r候到 withsysroot指定的地方查,接著的 glibcheaders和 gcc都沒有用到這個Binutils,這個交叉版的 Binutils是后面安裝目標(biāo)系統(tǒng) Glibc和軟件包時用到的; ? 第二次,第一次編譯 GCC下使用,目的是讓這個 GCC在編譯的時候默認(rèn)到 {withsysroot}/usr/include下找頭文件。 接著我們就開始編譯目標(biāo)體系平臺下的 Glibc了,這個時候交叉版本的 Binutils和第一次編譯的 GCC都用上了,則我們也就清楚了,在編譯這個 Glibc的時候是到${CLFS}/usr/include里找頭文件,到 ${CLFS}/lib等目錄下鏈接庫的,不過 Glibc是目標(biāo)系統(tǒng)的第一個軟件包,因此,他并不需要到 ${CLFS}/lib等目錄下的庫鏈接,但交叉版本的 Binutils還是順利的完成了 Glibc編譯目錄下自己眾多庫文件的鏈接工作。這里 Binutils的 withsysroot沒有體現(xiàn)出來,但 GCC的 withsysroot已經(jīng)發(fā)揮作用了。 ? 第三次,實(shí)際上這次是為了替換掉第一次編譯的 gcc而重復(fù)的,所以可以理解和第二次使用 withsysroot是一樣的。 ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? ./configure prefix=${TARGET_DIR}/crosstools ? make ? make install ? cd .. ? rm rf ? popd ? Flex 包含一個工具,可用于生成識別文本中圖形的程序。 ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? PAGE=A4 ./configure prefix=${CLFS}/crosstools withoutx ? make ? make install ? cd .. ? rm rf ? popd 測試交叉工具 ? include ? int ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1