Ubuntu系統(tǒng)下arm-linux-gcc交叉編譯環(huán)境搭建過(guò)程
本文轉(zhuǎn)載自:
https://blog.csdn.net/gsh_hello_world/article/details/70237123
Linux版本:Ubuntu 14.10
交叉編譯器版本:arm-linux-gcc-4.4.3資源鏈接
搭建交叉編譯環(huán)境,即安裝咐刨、配置交叉編譯工具鏈旁趟。在Ubuntu環(huán)境下編譯出嵌入式Linux系統(tǒng)所需的操作系統(tǒng)祭阀、應(yīng)用程序等,然后再上傳到目標(biāo)機(jī)上糊治。
?? 交叉編譯工具鏈?zhǔn)菫榱司幾g侧漓、鏈接、處理和調(diào)試跨平臺(tái)體系結(jié)構(gòu)的程序代碼蛀醉。對(duì)于交叉開(kāi)發(fā)的工具鏈來(lái)說(shuō)悬襟,在文件名稱(chēng)上加了一個(gè)前綴,用來(lái)區(qū)別本地的工具鏈拯刁。例如脊岳,arm-linux-表示是對(duì)arm的交叉編譯工具鏈,arm-linux-gcc表示是使用gcc的編譯器垛玻。除了體系結(jié)構(gòu)相關(guān)的編譯選項(xiàng)以外割捅,其使用方法與Linux主機(jī)上的gcc相同,所以Linux編程技術(shù)對(duì)于嵌入式同樣適用帚桩。不過(guò)亿驾,并不是任何一個(gè)版本拿來(lái)都能用,各種軟件包往往存在版本匹配問(wèn)題账嚎。例如莫瞬,編譯內(nèi)核時(shí)需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈郭蕉,則會(huì)導(dǎo)致編譯失敗疼邀。
?? gcc和arm-linux-gcc的區(qū)別就是gcc是linux下的C語(yǔ)言編譯器,編譯出來(lái)的程序在本地執(zhí)行召锈,而arm-linux-gcc用來(lái)在linux下跨平臺(tái)的C語(yǔ)言編譯器旁振,編譯出來(lái)的程序在目標(biāo)機(jī)(如ARM平臺(tái))上執(zhí)行,嵌入式開(kāi)發(fā)應(yīng)使用嵌入式交叉編譯工具鏈涨岁。
搭建步驟
1.解壓縮
下載arm-linux-gcc-4.4.3.tar.gz壓縮包拐袜,并將其放在/usr/local/目錄下,使用解壓縮命令將其解壓縮至該文件夾內(nèi):
tar zxvf arm-linux-gcc-4.4.3.tar.gz
現(xiàn)在交叉編譯程序集都在/usr/local/arm-linux-gcc-4.4.3/bin文件夾下梢薪。
2.配置環(huán)境變量
配置環(huán)境變量阻肿,把交叉編譯工具鏈的路徑添加到環(huán)境變量PATH中去,這樣就可以在任何目錄下使用這些工具沮尿。記下上一步中的安裝路徑,使用命令:vi /etc/profile編輯profile文件,添加環(huán)境變量畜疾,?在profile中最后一行添加:
export PATH=$PATH:/usr/local/arm-linux-gcc-4.4.3/bin
這個(gè)路徑就是那個(gè)bin目錄所在的路徑赴邻。
編寫(xiě)完使用wq保存退出。
3.使環(huán)境變量生效并驗(yàn)證
然后使用命令:
source /etc/profile
使環(huán)境變量生效(在不同用戶下最好都運(yùn)行一下此語(yǔ)句啡捶,例如shgao和root用戶下都運(yùn)行一下)姥敛。
檢查是否將路徑加入到PATH:?
echo $PATH
顯示的內(nèi)容中有/usr/local/arm-linux-gcc-4.4.3/bin,說(shuō)明已經(jīng)將交叉編譯器的路徑加入PATH瞎暑。
之后可以使用命令:
arm-linux-gcc -v
查看環(huán)境是否搭建成功彤敛,如果輸出以下內(nèi)容,代表已經(jīng)搭建成功:
然后可以使用命令:
arm-linux-gcc HZK16.cpp -o arm_HZK16
編譯生成可以在arm上運(yùn)行的二進(jìn)制文件了赌。
因?yàn)樯傻腶rm_HZK16為arm上運(yùn)行的二進(jìn)制文件墨榄,所以在Ubuntu中執(zhí)行出錯(cuò),x86_HZK16是用gcc編譯器生成的可執(zhí)行文件勿她,./x86_HZK16運(yùn)行結(jié)果如上袄秩。