您好,登錄后才能下訂單哦!
arm-linux-gcc交叉編譯器安裝是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在網上下載arm-linux-gcc-4.4.3.tar.gz。
1、解壓#tar -zxvf arm-linux-gcc-4.4.3.tar.gz
2、打開解壓目錄,將FriendlyARM文件夾拷貝到文件夾usr/local/。
cd /usr/local/
cp -rv FriendlyARM /usr/local/
(交叉編譯程序集都在/usr/local/arm/4.4.3/bin)
3、修改環境變量,將交叉編譯器的路徑加入到PATH。
方法一(未測過):修改/etc/bash.bashrc文件
#vi /etc/bash.bashrc
在最后加上:
export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin
export PATH
方法二(測試,無用):修改/etc/profile文件:
# vi /etc/profile
增加路徑設置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin
方法三:#export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin
其實,直接采用方法三即可。
4、立即使新的環境變量生效。
對應方法一(未測過):#source /root/.bashrc
對應方法二(未測過):# source /etc/profile
5、檢查是否將路徑加入到PATH:
# echo $PATH
顯示的內容中有/usr/local/FriendlyARM/toolschain/4.4.3/bin,說明已經將交叉編譯器的路徑加入PATH。
6、測試是否安裝成功
# arm-linux-gcc -v
顯示arm-linux-gcc信息和版本。arm-linux-gcc成功安裝。
7、小試牛刀。
vi下編寫hello.c程序。
int main(){
printf("hello!\n");
return 0;
}
#arm-linux-gcc hello.c -o hello (與gcc hello.c -o hello使用方法一樣)。
有如下錯誤:
/usr/local/FriendlyARM/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/FriendlyARM/toolschain/4.4.3/lib/libppl_c.so.2)
/usr/local/FriendlyARM/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/FriendlyARM/toolschain/4.4.3/lib/libppl.so.7)
原因:strings /usr/lib/libstdc++.so.6 | grep GLIBC,返回結果沒有GLIBCXX_3.4.9,接著輸入ls -l /usr/lib/libstdc++.so.6 ,結果為:
lrwxrwxrwx 1 root root 18 02-13 19:06 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
libstdc++.so.6是個軟鏈接,它鏈接到libstdc++.so.6.0.8。而libstdc++.so.6.0.8,沒有`GLIBCXX_3.4.9'。版本過低。
解決辦法:
一、網上下載libstdc++.so.6.0.10。放到/urs/lib目錄下。
二、刪除libstdc++.so.6。rm -rf /usr/lib/libstdc++.so.6。
三、重做libstdc++.so.6。軟鏈接,ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6.
然后,重新輸入#arm-linux-gcc hello.c -o hello。可以看到編譯成功。運行#hello,"cannot execute binary file".
arm-linux-gcc編譯的文件只能在arm開發板上運行,所以此處提示正確。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。