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. 執行