Ubuntu下安裝arm-linux-gcc-4.4.3.tar.gz (交叉編譯環境)__linux
來源:互聯網
上載者:User
考了前人的成果,結合自己實踐,arm-linux-gcc-4.4.3.tar.gz的下載地址為: http://ishare.iask.sina.com.cn/f/13836544.html?from=like
本人所用系統是Ubuntu12.04,但只要是Ubuntu應該都可以安照此步驟安裝。
1.解壓檔案
解壓 tar zxvf arm-linux-gcc-4.4.3.tar.gz -C/( 直接解壓後就可以,-C/會讓解壓的檔案自動放在根目錄下指定路徑,不用管)
下載arm-linux-gcc-4.4.3.tgz到任意的目錄下,進入這個檔案夾
sudo tar xvzf arm-linux-gcc-4.4.3.tgz –C /
注意:C後面有個空格(不需要),並且C是大寫的(必須),它是英文單詞“Change”的第一個字母,在此是改變目錄的意思。執行該命令,將把 arm-linux-gcc 安裝到/opt/Friendlyarm/toolschain/4.4.3 目錄。
2.建立目錄
sudo mkdir /usr/local/arm
3.複製檔案
sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm
5.添加環境變數
網上很多修改環境變數的方法,很雜。有 redhat 上面的,fedora。下面一共三種方法,有人都在UBUNTU11.10上試過,可行。(本人只用了第一種方法做過,其他的沒有試過)
方法一:修改/etc/bash.bashrc檔案(此檔案只對目前使用者適用)
sudo gedit /etc/bash.bashrc
在最後加上 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin (路徑)(注意等號那邊不要有空格)
方法二:修改/etc/profile檔案(此檔案屬於系統層級的環境變數,設定在裡面的東西對所有使用者適用)
sudo gedit /etc/profile
增加路徑設定,在末尾添加如下:
export PATH=$PATH:/usr/local/arm/4.4.3/bin
方法三:修改/etc/environment檔案
sudo gedit /etc/environment
原檔案應為
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“
將其改為
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin"
關於環境變數問題:
環境變數是什麼。例如path,當要求系統運行一個程式而沒有告訴它程式所在的完整路徑時,系統除了在目前的目錄下面尋找此程式外,還應到path中指定的路徑去找。使用者通過設定環境變數,來更好的運行進程。
如果上面不加入環境變數,要運行arm-linux-gcc這個程式,則每次都要把arm-linux-gcc的完整路徑寫出來。/usr/local/arm/4.4.3/bin arm-linux-gcc 檔案名稱 -o 輸出檔案名
這樣非常的麻煩,所以加到path裡面,讓電腦知道這個程式在哪裡。
6.註冊環境變數(此步未做,步驟8同樣顯示安裝成功)
立即使新的環境變數生效,不用重啟電腦,對應步驟5也有3種方法
方法一:source /root/.bashrc
或者
./etc/bash.bashrc
方法二:source /etc/profile
方法三:立即生效
7.檢查是否將路徑加入到PATH(此步未做,步驟8同樣顯示安裝成功)
echo $PATH
顯示內容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin 說明已經將交叉編譯器的路徑加入PATH。至此,交叉編譯環境安裝完成。
8.測試是否安裝成功
方法一:另開一個終端,輸入arm-,然後按兩下Tab,如果出現下列資訊,則表明安裝成功
arm2hpdl arm-linux-gprof
arm-elf-addr2line arm-linux-ld
arm-elf-ar arm-linux-nm
arm-elf-as arm-linux-objcopy
arm-elf-c++ arm-linux-objdump
arm-elf-c++filt arm-linux-populate
arm-elf-elf2flt arm-linux-ranlib
arm-elf-flthdr arm-linux-readelf
arm-elf-g++ arm-linux-size
arm-elf-gcc arm-linux-strings
arm-elf-ld