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

正文內(nèi)容

clfs的制作ppt課件-在線瀏覽

2024-12-03 23:32本頁面
  

【正文】 t:x:10: ? audio:x:11: ? video:x:12: ? utmp:x:13: ? usb:x:14: ? cdrom:x:15: ? EOF 創(chuàng)建日志文件 ? login agetty init程序會用到一些日志文件,這里先創(chuàng)建出來 ? touch $CLFS/var/run/utmp $CLFS/var/log/{btmp,lastlog,wtmp} ? chmod v 664 $CLFS/var/run/utmp $CLFS/var/log/lastlog 到這里建立交叉編譯工具鏈的環(huán)境已經(jīng)搭建完畢,可以開始制作交叉編譯工具鏈 下面來討論 SYSROOT版原理 ? 交叉編譯工具鏈 這個過程是 SYSROOT版原理實現(xiàn)的關(guān)鍵,而這里三次用到 withsysroot這個參數(shù)則是這個過程的關(guān)鍵,后面將詳細討論。 ? 然后加載 .bash_profile。 設(shè)置環(huán)境變量 ? cat ~/.bashrc EOF ? set +h ? umask 022 ? CLFS=/mnt/clfs ? LC_ALL=POSIX ? PATH=${CLFS}/crosstools/bin:/bin:/usr/bin ? export CLFS LC_ALL PATH ? EOF ? 這里 set +h命令關(guān)閉 bash的 hash功能,讓它從新到 PATH路徑中搜索程序。\u:\w\$ 39。CLFS ? CLFS分三種版本: ? ? (現(xiàn)改名為 CLFSSYSROOT) ? (現(xiàn)改名為 CLFS EMBEDDED) 改名是為了不給人一種高版本號代表更先進版本的錯覺。 三個版本采取不同的編譯安裝策略 ? 基礎(chǔ)環(huán)境,即目標(biāo)版體系的 GLIBC、 GCC、BINUTILS和其他一些輔助工具,然后在目標(biāo)板啟動,然后在目標(biāo)板上進行系統(tǒng)從 GLIBC到所有軟件包的安裝和編譯工作,這樣操作能得到絕對獨立純凈的目標(biāo)系統(tǒng) 三個版本采取不同的編譯安裝策略 ? SYSROOT版采取的是完全交叉編譯安裝的策略,所有軟件包都在主機上交叉編譯安裝 ? EMBEDDED主要是使用 BUZYBOX和 UCLIBC針對 uclinux 本機環(huán)境要求: ? Bash ? Binutils ? Bzip2 ? Coreutils ? Diffutils ? Findutils ? Gawk ? Gcc ? Glibc ? Grep ? Gzip ? Make ? Patch ? Sed ? Tar 建立安裝環(huán)境 ? 磁盤分區(qū): ? 輸入命令: ? cfdisk ? 保存退出后進行磁盤分區(qū)的格式化 ? mkswap /dev/hda7 ? /dev/hda6 磁盤格式化一定要在磁盤分區(qū)未進行加載前進行 建立安裝環(huán)境 ? 激活交換分區(qū) ? swapon /dev/hda7 ? 創(chuàng)建 CLFS的“創(chuàng)作基地” ? export CLFS=/mnt/clfs ? mkdir pv $CLFS ? 加載 CLFS文件系統(tǒng)存放的分區(qū) ? mount /dev/hda6 $CLFS 準備工作 ? 建立用戶 ? groupadd clfs ? useradd s /bin/bash g clfs m k /dev/null clfs ? passwd clfs ? 創(chuàng)建工作目錄 ? mkdir pv /mnt/clfs/{build,download} ? chown Rv clfs $CLFS ? 切換用戶 ? su clfs 設(shè)置環(huán)境變量 ? cat ~/.bash_profile EOF ? exec env i HOME=${HOME} TERM=${TERM} PS1=39。 /bin/bash ? EOF ? 任何用戶登錄時 SHELL都會讀取主機系統(tǒng)的/etc/profile腳本加載里面的各種環(huán)境變量,然后讀取用戶目錄下的 .bash_profile,在這里的 .bash_profile中加入 exec env i.../bin/bash命令,從新啟動一個 BASH替代先前登錄的那個,它使用除 TERM、 HOME、 PS1外完全空白的環(huán)境變量。 設(shè)置環(huán)境變量 ? 編譯交叉編譯工具時要保持 CLFAGS、 CXXFLAGS無設(shè)置 ? unset CFLAGS ? unset CXXFLAGS ? echo unset CFLAGS ~/.bashrc ? echo unset CXXFLAGS ~/.bashrc ? 在建立交叉編譯工具和將來進行交叉編譯時需要一些特定的變量 ? export CLFS_HOST=$(echo $MACHTYPE | sed s/$(echo $MACHTYPE | cut d f2)/cross/) ? export CLFS_TARGET=mipsellinuxgnu ? echo export CLFS_HOST=\${CLFS_HOST}\ ~/.bashrc ? echo export CLFS_TARGET=\${CLFS_TARGET}\ ~/.bashrc ? 到這里建立交叉編譯工具鏈的環(huán)境已經(jīng)搭建完畢,可以開始制作交叉編譯工具鏈。 ? source ~/.bash_profile 建立目標(biāo)系統(tǒng)目錄結(jié)構(gòu) ? 建立目標(biāo)系統(tǒng)目錄結(jié)構(gòu) ? pushd $CLFS ? mkdir pv {bin,boot,dev,{etc/,}opt,home,lib,mnt} ? mkdir pv {proc,media/{floppy,cdrom},sbin,srv,sys} ? mkdir pv var/{lock,log,mail,run,spool} ? mkdir pv var/{opt,cache,lib/{misc,locate},local} ? install dv m 0750 root ? install dv m 1777 {var/,}tmp ? mkdir pv usr/{,local/}{bin,include,lib,sbin,src} ? mkdir pv usr/{,local/}share/{doc,info,locale,man} ? mkdir pv usr/{,local/}share/{misc,terminfo,zoneinfo} ? mkdir pv usr/{,local/}share/man/man{1..8} ? for dir in usr{,/local}。 工具鏈的制作過程 ? 內(nèi)核頭文件的設(shè)置 ? 二進制工具程序的設(shè)置 ? 引導(dǎo)編譯器的設(shè)置 ? C鏈接庫 的設(shè)置 ? 完整編譯器的設(shè)置 鏈接庫 的設(shè)置 ? 鏈接庫的建立期間會建立三組鏈接庫: ? 共享鏈接庫 ? 靜態(tài)鏈接庫 ? 具有統(tǒng)計信息的靜態(tài)鏈接庫 以上這三組由 /lib/(動態(tài)鏈接器 )加載、 由 /etc/。接著的 make configurehost不要少了,這樣可以利用前面設(shè)置的參數(shù)全面配置 binutils所有需要編譯的部分。amp。s/[09]/g39。 ? echo ports/sysdeps/mips/mips32/Makefile //清空ports/sysdeps/mips/mips32/Makefile, mipsellinuxgcc無法識別該Makefile中傳參變量 abi。s/$/\ndefine __WORDSIZE 32/g39。 ? withheaders指定了使用的頭文件的目錄, glibc唯一必須要的頭文件就是內(nèi)核的頭文件,因為 glibc也是可以支持多種內(nèi)核平臺的,比如 BSD,所以它也必須了解所服務(wù)的內(nèi)核的所有特征細節(jié),因此就不難理解為什么內(nèi)核頭文件必須先于 glibc的頭文件安裝,只有這樣 glibc才能“了解”到準確的內(nèi)核信息。如果要生成支持C++的交叉版的 GCC需要目標(biāo)版的 Glibc庫,而現(xiàn)在我們還沒有目標(biāo)版的 Glibc庫,還好編譯 Glibc只需要支持 C的交叉版 GCC,而支持 C的交叉版 GCC只需要 Glibc頭文件就可以編譯出來。這里第二次用到 withsysroot這個參數(shù)。 CC指定的是剛編譯出來的交叉版的 GCC,這里我們編譯生成的 Glibc是目標(biāo)版上運行的所以要用到交叉版的 GCC。 prefix=/usr libexecdir=/usr/lib/glibc前面已經(jīng)提過是在 $CLFS目錄下的 /usr和 /usr/lib/glibc。 withbinutils=${CLFS}/crosstools/bin則是表明使用的 binutils是用的交叉版的。因為在這個文件丟失或不正確的情況下, Glibc 會使用默認配置,而 Glibc 的默認配置無法很好地在網(wǎng)絡(luò)環(huán)境下工作。 ? 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 ? 默認情況下,動態(tài)鏈接庫加載程序 (/lib/)搜索 /lib 和 /usr/lib 目錄來尋找程序需要使用的動態(tài)連接庫。 /usr/local/lib 和 /opt/lib 是兩個經(jīng)常包含動態(tài)連接庫但又不在默認目錄中的目錄,我們要把它們添加到動態(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++的系列支持,多線程編程支持。 ? make ? make install ? cd .. ? rm rf ? popd withsysroot參數(shù) ? withsysroot參數(shù) GCC在執(zhí)行編譯時是默認從/usr/include中找頭文件來編譯的,而 binutils中的工具 ld是從 /lib /usr/lib、 LD_LIBRARY_PATH、/etc/庫或者靜態(tài)庫進行鏈接操作的,也就是說他們都會到根目錄去尋找相關(guān)的東西,而我們進行交叉編譯如果去連接主機的這些庫和頭文件,這樣生成的二進制執(zhí)行文件是不能在目標(biāo)板上運行的。 withsysroot參數(shù) ? 三次 withsysroot參數(shù)分別出現(xiàn)在 Binutils、 GCC第一次和 GCC第二次中。 接著我們就開始編譯目標(biāo)體系平臺下的 Glibc了,這個時候交叉版本的 Binutils和第一次編譯的 GCC都用上了,則我們也就清楚了,在編譯這個 Glibc的時候是到${CLFS}/usr/include里找頭文件,到 ${CLFS}/lib等目錄下鏈接庫的,不過 Glibc是目標(biāo)系統(tǒng)的第一個軟件包,因此,他并不需要到 ${CLFS}/lib等目錄下的庫鏈接,但交叉版本的 Binutils還是順利的完成了 Glibc編譯目錄下自己眾多庫文件的鏈接工作。 ? 第三次,實際上這次是為了替換掉第一次編譯的 gcc而重復(fù)的,所以可以理解和第二次使用 withsysroot是一樣的。 ? tar xvf ${DOWNLOADDIR}/ C ${BUILDDIR} ? pushd ${BUILDDIR}/? PAGE=A4 ./configure prefix=${CLFS}/crosstools withoutx ? make ? make install ? cd .. ? rm rf ? popd 測試交叉工具 ? include ? int ? main() ? { ? printf(HEL
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1