下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗三 交叉編譯環(huán)境的搭建一、實驗目的1、 掌握使用crosstool-0.43腳本創(chuàng)建交叉編譯環(huán)境的方法2、掌握搭建不同版本的Linux內核的交叉編譯環(huán)境的方法3、掌握在Linux系統(tǒng)中查看各種軟件版本的方法二、實驗原理ARM芯片搭建的硬件開發(fā)平臺本身不具有編譯能力,編譯工作只能由PC機上的Linux系統(tǒng)或PC機上用虛擬機安裝的Linux系統(tǒng)擔任,為了能開發(fā)出能在ARM硬件環(huán)境下運行的程序,PC機上的Linux系統(tǒng)或PC機上用虛擬機安裝的Linux系統(tǒng)需要安裝交叉編譯環(huán)境,編譯出ARM硬件環(huán)境能運行的程序。ARM硬件環(huán)境要運行PC機上的Linux系統(tǒng)或PC機上用虛擬機安裝的Linux系統(tǒng)開發(fā)
2、出的程序,需通過網絡文件共享系統(tǒng)進行,通過文件共享的方式將PC機上的Linux系統(tǒng)或PC機上用虛擬機安裝的Linux系統(tǒng)開發(fā)出的程序共享到ARM硬件平臺上。三、實驗步驟1、相關軟件的準備1.1 運行環(huán)境介紹PC機安裝虛擬機VMware10.0、PC機Linux系統(tǒng)為RedHat AS5,、PC機Linux內核版本Linux、PC機Linux系統(tǒng)gcc編譯器版本為gcc-4.1.2、ARM硬件平臺CPU為s3c2410、ARM硬件平臺Linux內核版本為Linux2.6.24.4。1.2交叉編譯器所需資源及下載地址【binutils-.tar.bz2】 【glibc-2.3.2.tar.bz2】
3、 【glibc-linuxthreads-2.3.2.tar.bz2】 gnu/glibc/【4.4.tar.bz2】 【gdb-6.5.tar.bz2】 【gcc-4.1.1.tar.bz2】 【gcc-3.3.6.tar.bz2】 【linux-libc-headers-.0.tar.bz2】【crosstool-0.43.tar.bz2】 2、安裝環(huán)境準備2.1crosstool-0.43的準備將下載好的crosstool-0.43.tar.bz2文件復制到/opt目錄下,操作步驟為:1、確定虛擬機Linux系統(tǒng)samba服務器配置完成且自動掛載windows下的某個盤。2、將cross
4、tool-0.43.tar.bz2文件放在windows下的某個盤中。3、在虛擬機Linux中的/mnt/hgfs/下能看到windows的盤符。4、將crosstool-0.43.tar.bz2文件復制到/opt目錄下,命令為:#cp /mnt/hgfs/(windows disk)/ crosstool-0.43.tar.bz2 /opt/ 例:crosstool-0.43.tar.bz2文件放在windows下D盤的task3文件夾下,操作為:#cp /mnt/hgfs/D/task3/ crosstool-0.43.tar.bz2 /opt/ -R5、復制完成后解壓該文件,命令為:#c
5、d /opt#tar 解壓完成后在/opt/下就存在一個crosstool-0.43文件夾。6、將crosstool-0.43文件夾改名為crosstool,命令為:#mv crosstool-0.43 crosstool(當前路徑為:/opt/)7、更改crosstool所屬用戶為非當前非root用戶,命令為:#sudo chown R 當前普通用戶名:當前普通用戶名 crosstool(當前路徑為:/opt/)例:當前普通用戶為:scs,則命令為:# sudo chown R scs:scs crosstool2.2 其他相關軟件的準備1、在普通用戶的文件夾下新建一個名為downloads
6、的文件夾,命令為:#mkdir /home/普通用戶文件夾/downloads例:當前普通用戶為scs# mkdir /home/scs/downloads2、將上述準備的相關文件復制到這個文件夾內,命令為:#cp /mnt/hgfs/D/task3/binutils-.tar.bz2 ./(當前路徑為downloads下)#cp /mnt/hgfs/D/task3/ glibc-.tar.bz2 ./(當前路徑為downloads下)#cp /mnt/hgfs/D/task3/ glibc-linuxthreads-.tar.bz2 ./(當前路徑為downloads下)#cp /mnt/h
7、gfs/D/task3/ linux-4.4.tar.bz2 ./(當前路徑為downloads下)#cp /mnt/hgfs/D/task3/ gcc-4.1.1.tar.bz2 ./(當前路徑為downloads下)#cp /mnt/hgfs/D/task3/ gcc-.tar.bz2 ./(當前路徑為downloads下)3、將復制在downloads下的文件全部解壓,命令為:#tar jxvf binutils-.tar.bz2 (當前路徑為downloads下,其他文件同此)2.3相關文件的修改1.修改demo-arm9tdmi.sh文件進入/opt/crosstool/下,打開de
8、mo-arm9tdmi.sh文件,命令為:#vi demo-arm9tdmi.sh就可以查看demo-arm9tdmi.sh文件里面的內容為:#!/bin/sh# This script has one line for each known working toolchain# for this architecture. Uncomment the one you want.# Generated by generate-demo.pl from buildlogs/all.dats.txtset -exTARBALLS_DIR=/home/xxxx/download
9、; #這里相關準備軟件的存放目錄 RESULT_TOP=/opt /crosstool #這里是你生成一系列文件的目錄,相當于腳本編譯后生成文件的所在目錄export TARBALLS_DIR RESULT_TOPGCC_LANGUAGES="c,c+"export GCC_LANGUAGES# Really, you should do the mkdir before running this,# and chown /opt/crosstool to yourself so y
10、ou don't need to run as root.#此句提醒編譯時不要用root用戶編譯,要用普通用戶編譯mkdir -p $RESULT_TOP#eval cat arm9tdmi.dat sh all.sh -notest#eval cat arm9tdmi.dat gcc-2.95.3-glibc-2.2.2.dat sh all.sh -notest#eval cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2-tls.dat sh all.sh -notesteval cat arm9tdmi.dat gcc-4.1.1-glibc-2.3.
11、2.dat sh all.sh -notest #注意這里只留下這一項不被注釋掉,若你多留幾項那些都要編譯的,我們需要的就是gcc-4.1.1和glibc-2.3.2版本的編譯器,編譯出來的就是4.1.1版本。echo Done.2然后修改gcc-glibc-2.3.2.dat,就是剛才留下沒有注釋掉的那項。BINUTILS_DIR=binutils-#注意當中的這幾句,這些就是編譯時所需的文件GCC_CORE_DIR=gcc-3.3.6GCC_DIR=gcc-4.1.1GLIBC_DIR=gl4.4
12、 #這項根據(jù)你要為哪個版本的內核編譯工具,我們arm硬件上燒寫的是linux2.6.24.4,所以這里就要選擇linux-2.6.24.4,并且要把對應的內核文件放在downloads里。LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2GDB_DIR=gdb-6.53.修改arm9tdmi.dat:KERNELCONFIG=pwd/arm.configTARGET=arm-linux
13、160;#該名稱為交叉編譯器目標名稱,默認編譯出來的名字為:arm-unknow-linux-gnu 我們習慣用arm-linux-gcc,這里就修改成arm-linux,修改了后要注意了相關目錄的權限TARGET_CFLAGS="-O"4.修改glibc-如果這個文件不修改,就編譯不出交叉編譯工具,因為我們用pc-linux系統(tǒng)gcc編譯工具版本都會很高,而crosstool在執(zhí)行gcc編譯時要進行gcc版本匹配,過高的gcc版本不支持。進入/opt/crosstool/patches/glibc-目錄下,命令為:#cd /opt/crosstool/patches/gl
14、ibc-找到glibc-文件,并打開它,命令為:#vi glibc-打開后會看到gcc編譯時所支持的gcc版本為:3.2-9*|4.01*,我們的gcc版本為gcc-(注:查看gcc版本命令為:gcc v),在這里可以不用修改,但是以后如果所用的gcc的版本變高,必須修改此項,修改為:3.2-9*|4.,即支持gcc-4.x.x的版本。2.4 執(zhí)行編譯當前操作目錄為:/opt/crosstool/,執(zhí)行編譯。命令為:$./demo-arm9tdmi.sh這時系統(tǒng)開始編譯,這個過程比較長,如果你沒有下載上面的那些軟件或者那些軟件放置的文件夾不對,都需要重新下載,時間很長。如果都下好切放置目錄沒問題,我的虛擬機整個編譯過程大概1個多小時。如果沒有報錯,這時在/opt/crosstool/會生成gcc-glibc-2.3.2文件夾,此文件夾里就是我們交叉編譯器的地址。進入gcc-4.1.1-glibc-2.3.2/arm-linux/bin文件夾就可以看見我們的交叉編譯器。2.5 使交叉編譯器生效打開bashrc文件,命令為:#vi /etc/bashrc (redhat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026新疆博州聯(lián)通小營盤營業(yè)廳招聘考試參考題庫及答案解析
- 2026浙江寧波市余姚市農業(yè)農村局招聘下屬單位編外人員2人考試參考題庫及答案解析
- 2026年濟寧鄒城市教體系統(tǒng)急需緊缺人才招聘(70名)筆試備考試題及答案解析
- 2026年福建泉州仰恩大學招聘6名工作人員筆試模擬試題及答案解析
- 2026廣西國土規(guī)劃集團團隊帶頭人招聘5人考試參考題庫及答案解析
- 2026四川巴中市巴州區(qū)公益性崗位安置5人考試參考題庫及答案解析
- 2026年徽商銀行客服代表(勞務派遣制)招聘筆試模擬試題及答案解析
- 天府三中小學部2026年教師招聘備考題庫及參考答案詳解一套
- 2026年永豐縣國豐資產營運有限公司面向社會公開招聘工作人員備考題庫及一套參考答案詳解
- 2026年河東區(qū)婦幼保健計劃生育服務中心招聘派遣制工作人員備考題庫及一套答案詳解
- 反腐敗反賄賂培訓
- 成人留置導尿標準化護理與并發(fā)癥防控指南
- 2025年勞動關系協(xié)調師綜合評審試卷及答案
- DB34∕T 4700-2024 智慧中藥房建設與驗收規(guī)范
- 穿越機基礎課件
- 谷歌員工關系管理案例
- CIM城市信息模型技術創(chuàng)新中心建設實施方案
- 班級互動小游戲-課件共30張課件-小學生主題班會版
- 《軍用關鍵軟硬件自主可控產品名錄》(2025年v1版)
- 2025至2030全球及中國智慧機場建設行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 物流企業(yè)倉儲安全操作規(guī)程與培訓教材
評論
0/150
提交評論