版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、構(gòu)建嵌入式Linux編譯環(huán)境,2,什么是交叉編譯?,在嵌入式開發(fā)中經(jīng)常會提到交叉編譯的概念,那么究竟什么是交叉編譯呢? 交叉編譯就是,在一種體系結(jié)構(gòu)下的機器上編譯出能夠在另外一種體系結(jié)構(gòu)下運行的應用程序的編譯過程,3,交叉編譯器從何而來?,交叉編譯器是通過編譯一系列GNU工具及庫文件得到的,這些工具包括: Binutils: GNU的一個工具包,其中包括匯編器、連接器、歸檔器等等一系列工具 Gcc:主要提供C語言編譯器,同時還支持其它多種語言 Glibc:提供標準的C/C+庫 Kernel include files:為建立bootstrap gcc提供內(nèi)核頭文件,4,構(gòu)建編譯環(huán)境的整體流程,
2、5,構(gòu)建步驟,下載Binutils、gcc、glibc以及內(nèi)核源代碼,和針對該版本的補丁 通過本機上的gcc編譯Binutils,生成匯編器、連接器等編譯工具 編譯gcc源碼生成bootstrap gcc,用來編譯glibc 使用bootstrap gcc結(jié)合glibc和內(nèi)核源碼,便以生成glibc的標準c庫 再次編譯gcc源碼,生成完整的gcc編譯器,包含g+編譯器,6,詳細步驟(一),下載Binutils、gcc、glibc、內(nèi)核源代碼及相關版本的補丁 所有的GNU工具都可以到GNU的官方網(wǎng)站上下載 內(nèi)核源代碼下載地址 http:/www.kernel.
3、org/ 針對ARM體系機構(gòu)的補丁 .uk/,7,詳細步驟(二),建立工作目錄 為了使我們的編譯結(jié)果更清晰,更規(guī)范,我們就必須建立一列的工作目錄,$pwd /home/liang $mkdir embedded $cd embedded $mkdir build-tools kernel tools $ls build-tools kernel tools,總的工作目錄,編譯工具目錄,內(nèi)核源碼目錄,生成工具鏈目錄,8,詳細步驟(二),聲明環(huán)境變量,$export PRJROOT=/home/zxt/embedded $export TARGET=a
4、rm-linux $export PREFIX=$PRJROOT/tools $export TARGET_PREFIX=$PREFIX/$TARGET $export PATH=$PREFIX/bin:$PATH,9,詳細步驟(二),建立build-tools下子目錄 為了把源碼和編譯時生成的文件分開,一般的編譯工作不在的源碼目錄中,要另建一個目錄來專門用于編譯,$cd $PRJROOT/build-tools $mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch,編譯binutils的目錄,編譯bootst
5、rap gcc的目錄,編譯全部gcc的目錄,編譯glibc的目錄,gcc補丁,10,詳細步驟(二),將各個工具包的源代碼放置在build-tools 目錄下 解壓縮各個工具包,$ls binutils-2.10.1.tar.bz2 build-gcc gcc-patch build-binutls build-glibc glibc-2.2.3.tar.gz build-boot-gcc gcc-2.95.3.tar.gz glibc-linuxthreads-2.2.3.tar.gz,11,詳細步驟(三),配置內(nèi)核并生成內(nèi)核頭文件 對內(nèi)核源碼下include目錄進行修改,$cd includ
6、e $ln -s asm-arm asm $cd asm $rm arch proc $ln -s arch-s3c2410 arch $ln -s proc-armv proc,For 32bit ARM,針對不同的平臺使用不同的arch,12,詳細步驟(三),配置內(nèi)核生成頭文件 生成所需的內(nèi)核頭文件,$make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig,體系結(jié)構(gòu),交叉編譯工具,include/linux/version.h include/linux/autoconf.h,13,詳細步驟(三),安裝內(nèi)核頭文件到$TARGET_PREFIX目錄
7、下,$mkdir -p $TARGET_PREFIX/include $cp -r $PRJROOT/kernel/linux-2.4.21/include/linux $TARGET_PREFIX/include $cp -r $PRJROOT/kernel/linux-2.4.21/include/asm-arm $TARGET_PREFIX/include/asm,14,詳細步驟(四),編譯并安裝Binutils,15,16,詳細步驟(五),修改 gcc配置內(nèi)容 修改gcc-2.95.3源碼中gcc/config/arm/t-linux文件的配置內(nèi)容。 修改TARGET_LIBGCC2-
8、CFLAGS = -fomit-frame-pointer -fPIC配置內(nèi)容為:,TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D_gthr_posix_h,17,詳細步驟(五),編譯并安裝bootstrap gcc,$cd build-boot-gcc $./gcc-2.95.3/configure -target=$TARGET -prefix=$PREFIX -without-headers -enable-languages=c -disable-threads $make all-gcc $ma
9、ke install-gcc,現(xiàn)在還沒有glibc頭文件,只支持C語言,去掉thread功能,因為需要glibc的支持,18,19,詳細步驟(六),建立glibc庫 為glibc打補丁,$cd $PRJROOT/build-tools $tar -xvzf glibc-2.2.3.tar.gz $tar -xzvf glibc-linuxthreads-2.2.3.tar.gz -directory=glibc-2.2.3,為glibc打上thread補丁,20,詳細步驟(六),配置glibc,$cd build-glibc $CC=arm-linux-gcc ./glibc-2.2.3/co
10、nfigure -host=$TARGET -prefix=/usr -enable-add-ons -with-headers=$TARGET_PREFIX/include,指定使用bootstrap gcc,使用thread包,指定內(nèi)核頭文件位置,$make $make install_root=$TARGET_PREFIX prefix= install,21,詳細步驟(六),修改$TARGET_PREFIX/lib 目錄下的libc.so 修改前 修改后 原因 這樣修改以后鏈接器ld就會在libc.so目錄下搜索它所需要的庫,GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a),GROUP ( libc.so.6 libc_nonshared.a),22,23,詳細步驟(七),建立完整的gcc,$cd $PRJROOT/build-to
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030物聯(lián)網(wǎng)設備制造企業(yè)智能城市建設解決方案研究報告
- 2025-2030物流運輸行業(yè)效率提升路徑與政策環(huán)境分析報告書
- 2025-2030物流行業(yè)供需要求特點投資風險評估規(guī)劃全面分析研究報告
- 2025-2030物流信息化行業(yè)市場發(fā)展趨勢及技術革新方向與投資布局規(guī)劃
- 康復護理職業(yè)技能競賽方案
- 高壓變電站繼電保護技術方案
- 2024書記員法律知識考試模擬題庫
- 安全生產(chǎn)事故反思報告及整改措施
- 硬筆書法基礎教學教案范例
- 高校畢業(yè)生職業(yè)發(fā)展指導課程
- 手術部(室)醫(yī)院感染控制標準WST855-2025解讀課件
- 二氧化硅氣凝膠的制備技術
- 湖南省岳陽市平江縣2024-2025學年高二上學期期末考試語文試題(解析版)
- 2024-2025學年湖北省武漢市江漢區(qū)七年級(下)期末數(shù)學試卷
- 常規(guī)體檢指標講解
- 建筑工程生產(chǎn)管理培訓
- 新人教版高中數(shù)學必修第二冊-第八章 立體幾何初步 章末復習【課件】
- 倉庫物料效期管理制度
- GB/T 157-2025產(chǎn)品幾何技術規(guī)范(GPS)圓錐的錐度與錐角系列
- T/CCT 017-2024中低溫煤焦油
- 電子公司生產(chǎn)部年終工作總結(jié)
評論
0/150
提交評論