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

正文內(nèi)容

arm-linux交叉編譯環(huán)境的創(chuàng)建設(shè)計(jì)終稿畢業(yè)論文(編輯修改稿)

2025-07-17 07:09 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 式][s數(shù)據(jù)包大小][t存活數(shù)值][主機(jī)名稱(chēng)或IP地址] GCC包括的工具。1)cpp GNU預(yù)處理器,主要用于擴(kuò)展用戶(hù)源程序的頭文件和宏定義。cpp是GNU C編譯器的預(yù)處理器。cpp是一個(gè)宏指令處理器,GNU C編譯器在編譯前自動(dòng)使用cpp對(duì)用戶(hù)程序進(jìn)行轉(zhuǎn)換。cpp之所以稱(chēng)為宏指令處理器是因?yàn)樗试S用戶(hù)定義宏指令(長(zhǎng)結(jié)構(gòu)的簡(jiǎn)寫(xiě))。2)GCC符合ISO等標(biāo)準(zhǔn)的C編譯器。3)g++基本符合ISO等標(biāo)準(zhǔn)的C++編譯器。4)Binutils是一組二進(jìn)制工具程序集,它包括addr2line、ar、as、gprof、ld、nm、objcopy、objdump、ranlib、size、strings、strip等工具。是輔助GCC的主要軟件。5)As GNU匯編器(Assemble),主要用于把匯編代碼轉(zhuǎn)換成二進(jìn)制代碼,并存放到一個(gè)object文件中。6)Ld GNU鏈接器(Linker),主要用于確定相對(duì)地址,把多個(gè)object文件、起始(Startup)代碼段、庫(kù)(Library)等鏈接起來(lái),并最終形成一個(gè)可執(zhí)行文件。7)Addr2line把可執(zhí)行程序中的地址映射到源文件的對(duì)應(yīng)行。8)Ar創(chuàng)建歸檔文件(Archive)。修改/替換掉庫(kù)中的object文件。向庫(kù)中添加/提取object文件。9)C++file解碼C++符號(hào)名。10)Nm列出object文件中的符號(hào)。11)Objcopy用來(lái)顯示對(duì)象文件的信息。12)Ranlib根據(jù)歸檔文件(Archive)中內(nèi)容建立索引。13)Readelf顯示object文件和執(zhí)行文件各節(jié)(Section)和總的大小。14)Strings顯示文件中可以打印的字符。15)Strip去掉執(zhí)行文件中多余的信息(如調(diào)試信息等),可減少執(zhí)行文件的大小。在開(kāi)發(fā)嵌入式應(yīng)用軟件時(shí),交叉調(diào)試是必不可少的一步。嵌入式應(yīng)用的特點(diǎn)決定了其調(diào)試具有如下的特點(diǎn):1)調(diào)試器(Debugger)和被調(diào)試程序(Debuggee)運(yùn)行在不同的計(jì)算機(jī)上。Debugger運(yùn)行在一般的PC機(jī)或者工作站上(即Host上),而Debuggee運(yùn)行在實(shí)際的某種嵌入式設(shè)備或者專(zhuān)業(yè)的評(píng)估板上(都被稱(chēng)為T(mén)arget)。2)Debugger通過(guò)某種通信方式與目標(biāo)機(jī)建立聯(lián)系。通信方式可以是串口、并口、網(wǎng)絡(luò)、或者專(zhuān)用的通信方式。3)一般在目標(biāo)機(jī)上有Debugger的某種代理(Agent),這種代理能與Debugge一起配合完成對(duì)目標(biāo)機(jī)上運(yùn)行的程序的調(diào)試。這種代理可以是某種軟件,也可以是某種支持調(diào)試的硬件等。4)目標(biāo)機(jī)也可以是一種虛擬機(jī)。在這種情形下,似乎Debugger和Debuggee運(yùn)行在了同一臺(tái)計(jì)算機(jī)。但是調(diào)試方式的本質(zhì)沒(méi)有變化,即Debuggee都是被下載到了目標(biāo)機(jī),對(duì)Debuggee的調(diào)試并不是直接通過(guò)Host的操作系統(tǒng)的調(diào)試支持來(lái)完成的,而是通過(guò)虛擬機(jī)代理的方式來(lái)完成調(diào)試。交叉編譯使用的軟件包如下表1目錄名內(nèi)容Binutils工具包Gcc編譯器Glibc庫(kù)Glibc套件 調(diào)試器Linux內(nèi)核表1交叉編譯軟件包整個(gè)編譯過(guò)程的步驟:⑴創(chuàng)建編譯環(huán)境。在該這過(guò)程中,將設(shè)置必須的環(huán)境變量,創(chuàng)建安裝目錄,安裝內(nèi)核源代碼和頭文件等。⑵創(chuàng)建binutils。創(chuàng)建完畢后,會(huì)創(chuàng)建類(lèi)似armlinuxld等工具。⑶創(chuàng)建一個(gè)交叉編譯版本的gcc。這個(gè)過(guò)程中,只能編譯c程序,不能編譯c++程序⑷創(chuàng)建一個(gè)交叉編譯版本的glibc。⑸創(chuàng)建一個(gè)交叉編譯版本的gdb。會(huì)創(chuàng)建armlinuxgdb⑹重新創(chuàng)建gcc。⑺最后重新創(chuàng)建glibc。下載的壓縮文件存放在/usr/src/tars中;解壓之后的文件存放在/usr/src/source中;解壓后的linux內(nèi)核存放在/usr/src/linux中;編譯的路徑在/usr/src/build中;生成的armlinux交叉編譯工具在/usr/local/armlinux中。:export VBINUTILS=export VGCC=export VGLIBC=export VGLIBCTHREADS=export VGDB=export VLinuxKERNEL=export PREFIX=/usr/localexport HOST=i686pclinuxgnuexport ARCH=armexport TARGET=armlinuxexport TDIR=/usr/src/tarsexport SDIR=/usr/src/sourceexport BDIR=/usr/src/buildmkdir –p $SDIRmkdir –p $BDIRmkdir –p $BDIR/binutilsmkdir –p $BDIR/gccmkdir –p $BDIR/glibcmkdir –p $BDIR/gdbcd /usr/srctar zxvj $TDIR/linux$。創(chuàng)建相關(guān)鏈接。cd linux$VLinuxKERNEL/include/asmarmrm –f arch procln –s arch –s3c2410 archln –s arch –s3c2410 archln –s proc –armv proccd ../../首先要安裝的軟件包是binutils,這步非常重要,Glibc和gcc會(huì)針對(duì)可用的連接器和匯編器進(jìn)行多種測(cè)試,來(lái)決定打開(kāi)某些特性。解壓binutils軟件包:cd $SDIRtar xvfj $TDIR/binutils$cd $BDIR/binutils配置,編譯和安裝binutils$SDIR/binutils$VBINUTILS/configure –host=$HOST target=$TARGET prefix=$PREFIX withlibpath= $PREFIX/$TARGET/lib: $PREFIX/$TARGET/lib/be: $PREFIX/$TARGET/lib/softfloat: $PREFIX/$TARGET/lib/be/softfloat makemake installchmod 777 $PREFIX/$TARGET/armlinux目錄下有bin和lib兩個(gè)子目錄。Bin目錄下保存了二進(jìn)制文件,即ar、as、ld、nm、ranlib、和strip幾個(gè)文件。Lib目錄下有l(wèi)dscripts子目錄,里邊存放了一些腳本文件。/bin目錄下存放生成的二進(jìn)制工具,這些文件是用語(yǔ)ELF執(zhí)行格式的,前綴使用armlinux。/lib 。創(chuàng)建交叉編譯版本的gcc,需要交叉編譯版本的Glibc及頭文件,而交叉編譯版本的Glibc是通過(guò)交叉編譯版本的gcc創(chuàng)建的。先編譯對(duì)c語(yǔ)言的支持,并禁止支持線(xiàn)程。編譯gcc之前需要進(jìn)行修改,首先修改gcc源代碼中的gcc/config/arm/tlinux文件。just for these,we omit the frame pointer since it makes such a bigdifference. It is then pointless adding debuggingTARGET_LIBGCC2_CFLAGS=pomitframepointerfPICDinhibit_libcD__gthr_posixLIBGCC2_DEBUG_CFLAGS=g0don`t build enquireENQUIRE=LIB1ASMSRC=arm/LIB1ASMFUNCS=_udivsi3_divsi3_umodsi3_modsi3_dvmd_lnx_bb_init_func_call_via_rX_interwork_call_via_rX_negdf2_addsubdf3_muldivdf3_cmpdf2_unorddf2_fixdfsi_fixunsdfsi_truncdfsf2_negsf2_addsubsf3_muldivsf3_cmpsf2_unordsf2_fixsfsi_fixunssfsiMULTILIB_OPTIONS=mhardfloat/msotffloatMULTILIB_DIRNAMES=hardfloat softfloatEXTRA_MULTILIB_PARTS= MULTILIB_OPTIONS=mlittleendian/mbigendian mhardfloat/msoftfloatMULTILIB_DIRNAMES=le be hardfloat softfloatEXTRA_MULTILIB_PARTS= LIBGCC=stmpmultilibINSTALLLIBGCC=installmultilibT_CFLAGS=Dinhibit_libc –D___gthr_posix_hLIBGCC=stmpmultilibINSTALL_LIBGCC=install
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1