版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章創(chuàng)建嵌入式Linux交叉開發(fā)工具鏈6.1下載源文件6.2建立工作目錄6.3輸出環(huán)境變量6.4建立內(nèi)核頭文件6.5建立二進制工具6.6建立初始編譯器6.7建立c庫6.8建立全套編譯器6.9完成工具鏈的設(shè)置6.10測試和驗證交叉編譯工具本章小結(jié)
6.1下?載?源?文?件
要想選用適當?shù)陌姹?,以保證建立的工具鏈可用,就必須找到適合主機和目標板的組合。這些可以自己測試,也可以從網(wǎng)上尋找已經(jīng)測試過的版本組合,即binutils、gcc、glibc的版本組合。
6.2建立工作目錄
本章所有的工作都在?/home/mxl/diliuzhang下面建立完成。
進入工作目錄:
[root@localhostroot]#cd/home/mxl/diliuzhang
查看當前目錄:
[root@localhostdiliuzhang
]#pwd
/home/mxl/diliuzhang
創(chuàng)建工具鏈文件夾:
[root@localhostdiliuzhang]#mkdirembedded-toolchains
6.3輸出環(huán)境變量
輸出如下的環(huán)境變量方便后面編譯。
6.4建立內(nèi)核頭文件
內(nèi)核頭文件的配置是建立工具鏈的第一步。它與后面將要執(zhí)行的其他步驟有著類似性,大多需要執(zhí)行下面幾步操作:
(1)解壓縮包;
(2)為跨平臺開發(fā)設(shè)定包的配置;
(3)編譯包;
(4)安裝包。
[root@localhostembedded-toolchains]#pwd
/home/mxl/diliuzhang/embedded-toolchains
[root@localhostembedded-toolchains]#cdkernel解壓縮:
[root@localhostkernel]#tarxvzf../setup-dir/linux-2.4.21.tar.gz
[root@localhostkernel]#gunzip../setup-dir/patch-2.4.21-rmk1.gz
[root@localhostkernel]#cdlinux-2.4.21
給Linux內(nèi)核打補?。?/p>
[root@localhostlinux-2.4.21]#patch-p1<../../setup-dir/patch-2.4.21-rmk1配置:
[root@localhostlinux-2.4.21]#makeARCH=armCROSS_COMPILE=arm-linux-menuconfig
圖6-1Linux2.4.21內(nèi)核配置界面
6.5建立二進制工具
binutils是GNU工具之一,它包括連接器、匯編器和其他用于目標文件和檔案的工具,它是二進制代碼的處理維護工具。安裝binutils工具包含的程序有addr2line、ar、as、c++filt、gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、strings、strip、libiberty、libbfd和libopcodes。圖6-2編譯成功后的結(jié)果圖6-3驗證binutils成功后的結(jié)果
6.6建立初始編譯器
這一步的目的主要是建立arm-linux-gcc工具。注意,這個gcc沒有g(shù)libc庫的支持,所以只能用于編譯內(nèi)核、BootLoader等不需要c庫支持的程序,后面創(chuàng)建c庫也要用到這個編譯器,所以創(chuàng)建它主要是為創(chuàng)建c庫做準備,如果只想編譯內(nèi)核和BootLoader,那么安裝完這個就可以到此結(jié)束。圖6-4編譯初始編譯器錯誤示例圖6-5編譯初始編譯器成功后的結(jié)果圖6-6驗證初始編譯器成功后的結(jié)果
6.7建立c庫
建立c庫是最為繁瑣的過程,目標板必須靠它來執(zhí)行或者是開發(fā)大部分的應(yīng)用程序。glibc套件常被稱為c鏈接庫,但是glibc實際產(chǎn)生很多鏈接庫,其中之一是c鏈接庫libc。因為嵌入式系統(tǒng)的限制,標準GNUc鏈接庫顯得太大,不適合應(yīng)用在目標板上。圖6-7編譯glibc成功后的結(jié)果圖6-8安裝glibc成功后的結(jié)果
6.8建立全套編譯器
由于第一次安裝的gcc沒有交叉glibc的支持,現(xiàn)在已經(jīng)安裝了glibc,因此需要重新編譯來支持交叉glibc。并且上面的gcc也只支持C語言,現(xiàn)在可以讓它同時支持C語言和C++語言。圖6-9編譯全套編譯器成功后的結(jié)果
6.9完成工具鏈的設(shè)置
[root@localhostbuild-gcc]#cd$TARGET_PREFIX/bin
查看文件是否為二進制文件:
[root@localhostbin]#fileasargccldnmranlibstrip
查看缺省的搜尋路徑:
[root@localhostbin]#arm-linux-gcc-print-search-dirs
轉(zhuǎn)移文件:
[root@localhostbin]#mvasargccldnmranlibstrip
$PREFIX/lib/gcc-lib/arm-linux/2.95.3
[root@localhostbin]#forfileinasargccldnmranlibstrip
>do
>ln-s$PREFIX/lib/gcc-lib/arm-linux/2.95.3/$file
>done
6.10測試和驗證交叉編譯工具
下面編寫一個簡單的C程序,使用建立的工具鏈。圖6-10交叉編譯器編譯示例本章小結(jié)
本章介紹了如何一步一步制作交叉開發(fā)工具鏈。要使制作成功,必須找到適合的主機
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋪面出租押金合同模板
- 2024版二手房產(chǎn)購買協(xié)議3篇
- 2024年度球隊官方賽事贊助商權(quán)益協(xié)議3篇
- 2024年度企業(yè)形象策劃與推廣服務(wù)合同7篇
- 2024年度國際新聞媒體戰(zhàn)略合作伙伴協(xié)議范本3篇
- 集團內(nèi)部租賃合同范例
- 2024年度環(huán)保服務(wù)合同:環(huán)保服務(wù)公司與企業(yè)的廢氣處理工程3篇
- 專題07+高考英語閱讀理解基礎(chǔ)訓(xùn)練01:詞性轉(zhuǎn)換(練習(xí)+答案)
- 2024年度電子商務(wù)平臺用戶協(xié)議及隱私保護合同3篇
- 2024年度子女撫養(yǎng)的有子女離婚協(xié)議書3篇
- 【MOOC】英文技術(shù)寫作-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年21起典型火災(zāi)案例及消防安全知識專題培訓(xùn)(消防月)
- 人教版四年級上冊數(shù)學(xué)【選擇題】專項練習(xí)100題附答案
- 從創(chuàng)意到創(chuàng)業(yè)智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗規(guī)程
- 國開《Windows網(wǎng)絡(luò)操作系統(tǒng)管理》形考任務(wù)4-配置故障轉(zhuǎn)移群集服務(wù)實訓(xùn)
- 計價格[1999]1283號_建設(shè)項目前期工作咨詢收費暫行規(guī)定
- (完整版)工業(yè)與民用配電設(shè)計手冊
- 教學(xué)論文】《自制教具應(yīng)用于初中物理有效教學(xué)的研究》課題研究報告【教師職稱評定】
- 安全生產(chǎn)工作者個人先進事跡材料(word版本)
- 執(zhí)業(yè)藥師注冊委托書.doc
評論
0/150
提交評論