日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

搭建交叉編譯環(huán)境

 lchjczw 2012-04-03
搭建交叉編譯環(huán)境
4.1.1概述
交叉編譯,就是用運(yùn)行在一種計(jì)算機(jī)環(huán)境中的編譯程序,去編譯出在另外一種環(huán)境下運(yùn)行的代碼。具有這種能力的編譯器就叫交叉編譯器。換而言之,就是在一個(gè)平臺上生成另一個(gè)平臺上的可執(zhí)行代碼。這里所指的平臺實(shí)際上包含了軟/硬件兩個(gè)方面的概念:操作系統(tǒng)(Operating System)和體系結(jié)構(gòu)(Architecture)。同樣是Linux系統(tǒng),在不同體系結(jié)構(gòu)的硬件平臺上的可執(zhí)行代碼是不同的,譬如ARM和x86,因?yàn)樗鼈兊闹噶钕到y(tǒng)不一樣,所以可執(zhí)行代碼也就有差異。同樣是ARM平臺,由于操作系統(tǒng)的實(shí)現(xiàn)不一樣,可執(zhí)行代碼也會不一樣。
一般情況下,嵌入式Linux系統(tǒng)的資源緊張,無法安裝運(yùn)行所需的編譯器,甚至是目標(biāo)平臺都還沒有建立,連操作系統(tǒng)都沒有,根本談不上運(yùn)行編譯器。常用的做法是在一臺PC上搭建交叉編譯環(huán)境,即配置安裝交叉編譯工具鏈(針對目標(biāo)平臺的編譯器gcc、二進(jìn)制工具binutils、標(biāo)準(zhǔn)c庫glibc和linux內(nèi)核頭文件等等),在該環(huán)境下編譯出嵌入式Linux系統(tǒng)所需的操作系統(tǒng)系統(tǒng)、應(yīng)用程序等,然后再上傳到目標(biāo)平臺上。
4.1.2、安裝
要搭建交叉編譯環(huán)境,就需制作一個(gè)交叉編譯工具鏈,一般有三種途徑:
2 手工制作,一步步編譯
這種方式的難度比較大。制作交叉編譯工具鏈所需要的源碼包存在版本匹配的問題,如果編譯過程中出現(xiàn)了問題,去修正這些問題比較困難。另外還要為制作環(huán)境安裝好所需的工具軟件。
2 通過腳本編譯
用crosstool生成的腳本來制作,比手動編譯難度會小一些,但是需要修改腳本,要熟悉shell腳本知識。
2 直接獲取
網(wǎng)絡(luò)上有許多已經(jīng)制作好的交叉編譯工具鏈,直接下載,安裝配置下就行了。
有了交叉編譯工具鏈后,就可以安裝了。先把得到的壓縮包解壓到指定的目錄,然后再配置系統(tǒng)環(huán)境。在ubuntu下安裝配置ARM平臺的交叉編譯環(huán)境的步驟如下:
2 下載
下載廣州友善之臂計(jì)算機(jī)公司制作的交叉編譯工具鏈arm-linux-gcc-4.3.2.tgz,下載地址是“http://arm9download./linux/arm-linux-gcc-4.3.2.tgz?;蚴窃诰W(wǎng)絡(luò)上搜索下,找到合適的交叉編譯工具鏈。
2 解壓
以root賬戶登錄系統(tǒng),把a(bǔ)rm-linux-gcc-4.3.2.tgz拷貝到根目錄下,然后解壓,執(zhí)行命令如下:
# tar -zxvf arm-linux-gcc-4.3.2.tgz
2 配置系統(tǒng)環(huán)境變量
交叉編譯工具鏈安裝好了以后,最好先配置系統(tǒng)環(huán)境變量,把其所在的路徑加入進(jìn)PATH,這樣就能在任何目錄下方便的使用。通常,要修改環(huán)境變量,可以修改以下三個(gè)腳本中的一個(gè):全局(公有)配置腳本/etc/profile,所有用戶登錄時(shí)都要執(zhí)行;Shell初始化腳本/etc/bash.bashrc,也是所有用戶登錄時(shí)執(zhí)行的;root賬戶目錄下的Shell配置腳本/root/.bashrc(換成其他賬戶的話,就在其工作目錄下去找),僅僅是root賬號登錄時(shí)執(zhí)行的。推薦修改/etc/bash.bashrc文件,方法如下:
v 打開文件
# vi /etc/bash.bashrc
v 修改文件
在最后加上一行,添加如下內(nèi)容:
export PATH=$PATH:/usr/local/arm/4.3.2/bin
v 設(shè)置生效
如果要使新的環(huán)境變量立即生效,而不用重啟電腦,則執(zhí)行如下命令:
# source /etc/bash.bashrc
v 驗(yàn)證配置
可以使用如下指令檢查環(huán)境變量是否配置成功:
# echo $PATH
修改其他的腳本文件方法類似,只是注意其影響是否覆蓋到登錄賬戶。
2 測試
環(huán)境變量配置好了,查看下arm-linux-gcc的版本信息,在終端中輸入

# arm-linux-gcc -v

再編寫一個(gè)測試程序test.c來測試交叉編譯環(huán)境是否搭建成功,內(nèi)容如下:

#include <stdio.h>

int main(void)

{

printf("Hello arm gcc.\n");

return 0;

}

編譯test.c,并用file查看可執(zhí)行程序的格式信息:

# arm-linux-gcc -o test test.c

# file test

test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多