1. 程式人生 > >CentOS 作業系統中製作arm-linux-gcc編譯工具鏈

CentOS 作業系統中製作arm-linux-gcc編譯工具鏈

1. 編譯:

1.1  環境:

在臺式機上安裝了linux;

參考手冊中的方法建立編譯環境(以前用的是arm-linux-gcc3.4.1,現在是4.4.3)

Step1:將光碟目錄linux\中的arm-linux-gcc-4.4.3.tgz 複製到某個目錄下如tmp\,然後
進入到該目錄,或者從網路上下載,地址http://www.arm9.net/download.asp。執行解壓命令:
#cd /tmp
#tar xvzf arm-linux-gcc-4.4.3.tgz –C /(實際是-xvzf,少了一個‘-’,字尾不是tgz,而是tar.gz)
注意:C 後面有個空格,並且C 是大寫的,它是英文單詞“Change”的第一個字母,
在此是改變目錄的意思。
執行該命令,將把arm-linux-gcc 安裝到/usr/loca/arm/4.4.3 目錄。
解壓過程如圖所示:

Step2:把編譯器路徑加入系統環境變數,執行命令
#gedit /root/.bashrc
編輯/root/.bashrc 檔案,在最後一行新增:
export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin
如圖,儲存退出。

新的裝置環境生效:

1、重新登入系統(不必重啟機器,開始->logout 即可),使以上設定生效,在命令列輸入
arm-linux-gcc –v,會出現如下資訊,這說明交叉編譯環境已經成功安裝。

2、 或者在命令列輸入:# source /etc/profile立即使新的環境變數生效,不用重啟電腦。

1.2 遇到的問題及其修改

直接make,錯誤很多,都是:“*.o has EABI version 0, but target myexe has EABI version 5”,

方法:make前先執行make clean

結果:錯誤只有倆,但還是有,

version 'GLIBCXX3.4.9'not found(required by /usr/local / lib /l ibppl.so.2)
version 'GLIBCXX3.4.9'not found(required by /usr/local / lib /l ibppl.so.7) 方法:

1).先驗證strings /tmp/libstdc++.so.6|grep GLIBCXX是否有

GLIBCXX_3.4.9,GLIBCXX_3.4.10

目前應該沒有,因為該檔案是連線到6.0.8,這個版本沒有;

從網上下載6.0.10,放到/usr/lib/中,再次驗證應該有。

2).之後刪除 符號連結:rm /usr/lib/libstdc++.so.6

3)再建立符號連結ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6

4)make clean後,make成功。

注:第一次下載了一個錯誤的6.0.10,導致還有錯誤“arm-none-linux-gnueabi-gcc: internal error: bus error(program cc1)
please submit a full bug report”,而且不能進入圖形介面!後來才發現下載的檔案是錯的。正確檔案大小為929KB!

2. 執行