關于arm-linux-gcc4.4.3在ubuntu11.10下的安裝
嘔心瀝血翻閱無數(shù)資料才看到這個比較有用的,昨晚花了幾個鐘裝4.3.2版本的一直不成功,今天無意在論壇看到這個東西試了一下,還是得花了兩三個鐘,著實累,但是成功了。聽安慰的。
以下裝arm-linux-gcc4.4.3這個交叉編譯器是參考authorowen這位朋友,以下是該位朋友的博文:
參考了前人的成果,結合自己實踐。
本文引用地址:http://m.butianyuan.cn/article/201611/319085.htm1 下載arm-linux-gcc-4.4.3.tgz到任意的目錄下,進入這個文件夾
$ sudo tar xvzf arm-linux-gcc-4.4.3.tgz –C /
注意:C 后面有個空格,并且 C 是大寫的,它是英文單詞“Change”的第一個字母,在此是改變目錄的意思。
執(zhí)行該命令,將把 arm-linux-gcc 安裝到/opt/Friendlyarm/4.4.3 目錄。
在/usr/local/下建立 arm的文件夾
mkdir arm
chmod 777 arm
然后把 opt下的4.4.3 目錄復制到 /usr/local/arm下
sudo cp -r /opt/Friendlyarm/4.4.3
2. 修改環(huán)境變量,把交叉編譯器的路徑加入到PATH。
網(wǎng)上很多修改環(huán)境變量的方法,很雜。有 redhat 上面的,federo(是這么寫的吧)。下面一共三種方法,我都在UBUNTU11.10上試過,可行。
方法一:修改/etc/bash.bashrc文件(此文件只對當前用戶適用)
$sudo gedit /etc/bash.bashrc(首都哥用的就是第一種方法,一開始失敗,后邊不知道怎么的也就成功了)
在最后加上export PATH=$PATH:/usr/local/arm/4.4.3/bin
方法二:修改/etc/profile文件(此文件屬于系統(tǒng)級別的環(huán)境變量,設置在里面的東西對所有用戶適用):
$sudo gedit /etc/profile
增加路徑設置,在末尾添加如下,保存/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“
(有照著操作一遍,后邊又給還原了,但是再回歸第一種方法時卻成功了)
關于路徑設置問題,可以 用終端逐步尋找,比如 在 終端下 cd /usr/local/ 用TAB鍵 一直找到 /bin
關于環(huán)境變量問題:
環(huán)境變量是什么?例如path,當要求系統(tǒng)運行一個程序而沒有告訴它程序所在的完整路徑時,系統(tǒng)除了在當前目錄下面尋找此程序外,還應到path中指定的路徑去找。用戶通過設置環(huán)境變量,來更好的運行進程。
如果上面不加入環(huán)境變量,要運行arm-linux-gcc這個程序,則每次都要把arm-linux-gcc的完整路徑寫出來。/usr/local/arm/4.4.3/bin arm-linux-gcc 文件名 -o 輸出文件名
這樣非常的麻煩,所以加到path里面,讓電腦知道這個程序在哪里。
3. 立即使新的環(huán)境變量生效,不用重啟電腦:
對應方法一:$ source /root/.bashrc(首都哥用這一種)
對應方法二:$ source /etc/profile
方法三立即生效
4. 檢查是否將路徑加入到PATH:
$ echo $PATH
顯示內(nèi)容/usr/local/sbin:/usr /local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin 說明已經(jīng)將交叉編譯器的路徑加入PATH。至此,交叉編譯環(huán)境安裝完成。
5. 測試是否安裝成功
$ arm-linux-gcc -v
上面的命令會顯示arm-linux-gcc信息和版本,這是我顯示的信息:
root@ubuntu:/home/berlin# arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)
6.編譯Hello World程序,測試交叉工具鏈
寫下下面的Hello World程序,保存為hello.c
#include
int main()
{
printf("Hello World!n");
return 0;
}
執(zhí)行下面的命令:
$ arm-linux-gcc hello.c -o hello
ls 下
看到hello 執(zhí)行文件
$ file hello
這樣說明可以在ARM上運行,此時不能在pc上運行
評論