arm-linux-gcc armv4,ubuntu11.10 下 arm-linux-gcc4.4.3
參考了前人的成果,結合自己實踐。
1 下載arm-linux-gcc-4.4.3.tgz到任意的目錄下,進入這個文件夾
$ sudo tar xvzf arm-linux-gcc-4.4.3.tgz ?C /
注意:C 后面有個空格,并且
執行該命令,將把 arm-linux-gcc 安裝到/opt/Friendlyarm/4.4.3 目錄。
在/usr/local/下建立 arm的文件夾
mkdir arm
chmod 777 arm
然后把 opt下的4.4.3 目錄復制到 /usr/local下
sudo cp -r/opt/Friendlyarm/4.4.3 /usr/local/
2. 修改環境變量,把交叉編譯器的路徑加入到PATH。
網上很多修改環境變量的方法,很雜。有 redhat 上面的,federo(是這么寫的吧)。下面一共三種方法,我都在UBUNTU11.10上試過,可行。
方法一:修改/etc/bash.bashrc文件(此文件只對當前用戶適用)$sudo gedit /etc/bash.bashrc
在最后加上export PATH=$PATH:/usr/local/arm/4.4.3/bin
方法二:修改/etc/profile文件(此文件屬于系統級別的環境變量,設置在里面的東西對所有用戶適用):
$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“
將其改為
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin”
保存退出即可
關于路徑設置問題,可以 用終端逐步尋找,比如 在 終端下 cd /usr/local/ 用TAB鍵 一直找到 /bin
關于環境變量問題:
環境變量是什么?例如path,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到
如果上面不加入環境變量,要運行arm-linux-gcc這個程序,則每次都要把arm-linux-gcc的完整路徑寫出來。/usr/local/arm/4.4.3/bin arm-linux-gcc 文件名 -o 輸出文件名
這樣非常的麻煩,所以加到path里面,讓電腦知道這個程序在哪里。
3. 立即使新的環境變量生效,不用重啟電腦:
對應方法一:$ source /
對應方法二:$ source /etc/profile
方法三立即生效
4. 檢查是否將路徑加入到PATH:
$ echo $PATH
顯示內容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin 說明已經將交叉編譯器的路徑加入PATH。至此,交叉編譯環境安裝完成。
5. 測試是否安裝成功
$ arm-linux-gcc -v
上面的命令會顯示arm-linux-gcc信息和版本,這是我顯示的信息:
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!
“);
return 0;
}
執行下面的命令:
$ arm-linux-gcc hello.c -o hello
ls 下
看到hello 執行文件
$ file hello 在hello的目錄下
可以看到hello: ELF 32-bit LSB executable,ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped
這樣說明可以在ARM上運行,此時不能在pc上運行
????????????????????????????????????????????????????????????????
1.用export命令查看現在環境變量
root@ubuntu:~# export
declare -x COLORTERM=”gnome-terminal”
declare -x DEFAULTS_PATH=”/usr/share/gconf/gnome.default.path“
declare -x DESKTOP_SESSION=”gnome”
declare -x DISPLAY=”:0.0″
declare -x GDMSESSION=”gnome”
declare -x HOME=”/root“
declare -x LANG=”en_CA.UTF-8″
declare -x LOGNAME=”root”
declare -x MANDATORY_PATH=”/usr/share/gconf/gnome.mandatory.path“
declare -x OLDPWD
declare -x ORBIT_SO
(注:中間省略了內容)
單獨看看PATH環境變量:
root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
2.設置變量的三種方法
1.在/etc/profile文件中添加變量【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,并且是“永久的”。
例如:編輯/etc/profile文件,添加以下:
# vi /etc/profile
export PATH=”$PATH:/opt/eldk”
注:修改文件后要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2.在用戶目錄下的.bashrc文件中增加變量【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bashrc文件中增加變量,改變量僅會對當前用戶有效,并且是“永久的”。
例如:編輯root用戶目錄下的.bashrc
$ vi /root/.bashrc
添加如下內容:
export PATH=“$PATH:/opt/eldk”
注:修改文件后要想馬上生效還要運行$ source /root/.bashrc不然只能在下次重進此用戶時生效。
3.直接運行export命令定義變量【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export 變量名=變量值] 定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。
root@
————————————————————————————————————————————————————————————————————————“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經在系統環境變量中了,如果可執行文件在這幾個標準位置,在終端命令行輸入該軟件可執行文件的文件名和參數(如果需要參數),回車即可。
如果不在標準位置,文件名前面需要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個“一勞永逸”的辦法是把這個路徑加入環境變量。命令“PATH=$PATH:路徑”可以把這個路徑加入環境變量,但是退出這個命令行就失效了。要想永久生效,需要把這行添加到環境變量文件里。有兩個文件可選:“/etc/profile”和用戶主目錄下的“.bashrc”,“/etc/profile”對系統里所有用戶都有效,用戶主目錄下的“.bashrc”只對這個用戶有效。
“PATH=$PATH:路徑1:路徑2:…:路徑n”,意思是可執行文件的路徑包括原先設定的路徑,也包括從“路徑1”到“路徑n”的所有路徑。當用戶輸入一個一串字符并按回車后,shell會依次在這些路徑里找對應的可執行文件并交給系統核
注意,與DOS/Window不同,UNIX類系統環境變量中路徑名用冒號分隔,不是分號。另外,軟件越裝越多,環境變量越添越多,為了避免造成混亂,建議所有語句都添加在文件結尾,按軟件的安裝順序添加。
格式如下():
#軟件名-版本號
PATH=$PATH:路徑1:路徑2:…:路徑n
其他環境變量=$其他環境變量:…
在“profile”和“.bash_profile”中,“#”是注釋符號,寫在這里除了視覺分隔外沒有任何效果。
設置完畢,注銷并重新登錄,設置就生效了。如果不注銷,直接在shell里執行這些語句,也能生效,但是作用范圍只限于執行了這些語句的shell。
相關的環境變量生效后,就不必老跑到軟件的可執行文件目錄
總結
以上是生活随笔為你收集整理的arm-linux-gcc armv4,ubuntu11.10 下 arm-linux-gcc4.4.3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网卡点灯命令,LINUX下SH
- 下一篇: linux pyside2 安装包,Qt