arm-linux-gcc交叉編譯器安裝

在網上下載arm-linux-gcc-4.4.3.tar.gz。linux

1、解壓#tar -zxvf arm-linux-gcc-4.4.3.tar.gzc++

2、打開解壓目錄,將FriendlyARM文件夾拷貝到文件夾usr/local/。
bash

cd /usr/local/測試

cp -rv FriendlyARM /usr/local/ui

(交叉編譯程序集都在/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/binstring

方法三:#export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/binio

其實,直接採用方法三便可。編譯

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'。版本太低。

解決辦法:

      1、網上下載libstdc++.so.6.0.10。放到/urs/lib目錄下。

      2、刪除libstdc++.so.6。rm -rf /usr/lib/libstdc++.so.6。

      3、重作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開發板上運行,因此此處提示正確。

相關文章
相關標籤/搜索