arm-linux-gcc安裝及自定義bash指令碼環境變數設定
2。 解壓 arm-linux-gcc-3.4.1.tar.bz2
#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
解壓過程需要一段時間,解壓後的檔案形成了 usr/local/ 資料夾,進入該資料夾,將 arm資料夾拷貝到/usr/local/下
# cd usr/local/
#cp -rv arm /usr/local/
現在交叉編譯程式集都在/usr/local/arm/3.4.1/bin下面了
3。 修改環境變數,把交叉編譯器的路徑加入到PATH。(有三種方法,強烈推薦使用方法一)
方法一:修改/etc/bash.bashrc檔案
#vim /etc/bash.bashrc
在最後加上:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
export PATH
方法二:修改/etc/profile檔案:
# vim /etc/profile
增加路徑設定,在末尾新增如下,儲存/etc/profile檔案:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin
注:(這隻能在當前的終端下才是有效的!)
4。 立即使新的環境變數生效,不用重啟電腦:
對應方法一:#source /root/.bashrc
對應方法二:# source /etc/profile
5。 檢查是否將路徑加入到PATH:
# echo $PATH
顯示的內容中有/usr/local/arm/bin,說明已經將交叉編譯器的路徑加入PATH。至此,交叉編譯環境安裝完成。
6. 測試是否安裝成功
# arm-linux-gcc -v
上面的命令會顯示arm-linux-gcc資訊和版本,這是我顯示的資訊:
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu
--prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm
-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable
-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable- languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
7.編譯Hello World程式,測試交叉工具鏈
寫下下面的Hello World程式,儲存為hello.c
#include <stdio.h>
int main()
{
printf("Hello World!/n");
return 0;
}
執行下面的命令:
# arm-linux-gcc -o hello hello.c
-------------------------------------------------------------
修改環境變數這一步修改/etc/profile檔案
在path中新增arm-linux-gcc路徑
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/arm/3.4.1/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi
再source /etc/profile就可以重新整理環境變數
其他方式試過好像不行........
我們用linux作開發時有時候裝一個軟體需要配置一些軟體有關的資訊。另外,我們還要配置一下環境變數。例如:裝arm-linux-gcc 時就需要配置一下$PATH變數。下面介紹一下,linux shell 工作時需要讀取哪些目錄。我們都知道一般用linux 是使用shell和系統互動(即敲一些命令)。那這些命令有些是shell自己帶的,叫內部命令,有些是呼叫linux裡的程式,既然要呼叫就要有地方存著這些命令。怎麼告訴shell這些命令的位置那,就要通過環境變數來設定。如果你不設定環境變數的話,你想執行和那個軟體有關的命令就必須到那個目錄下。這樣是不是太麻煩。反正shell在使用時會自動搜尋目錄。那何必自己找那。呵呵
通常和環境變數有關的檔案有(以bash這個shell為例):
/etc/profile與/etc/bashrc 和 當前使用者家目錄下的 .bashrc
下面分別介紹一下:
/etc/profile 主要配置一些系統變數的。而 /etc/bashrc 是針對使用bash這個shell的所有使用者的。
而 家目錄的.bashrc是針對單個系統使用者的 如:在root家目錄下的只針對root使用者生效。
你可以用env set等命令來顯示你當前用的shell的環境變數。
也可以用export 來臨時新增環境變數。下面是export的使用方法:
export [-fnp][變數名稱]=[變數設定值]
補充說明:在shell中執行程式時,shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該此登陸操作。
參 數:
-f 代表[變數名稱]中為函式名稱。
-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的shell賦予程式的環境變數。
不過我們重點介紹一下用修改檔案的方法來做,因為這樣一次性就搞定這個問題了。
如果:你想讓所有的使用者的shell都能使用該路徑,則你要修改 /etc/bashrc 這個檔案,怎麼修改那,具體情況具體分析。下面給出一個我裝arm-linux-gcc 時寫的:
if [ -d /usr/local/arm/2.95.3 ] ; then
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
fi
PATH後面跟的就是你安裝的軟體的bin目錄的位置。
如果你想讓單個使用者使用該環境變數,則修改相應的使用者的家目錄下的 .bashrc
修改後重新登入即可生效。
關於登入時shell讀取配置有關的知識:
對於登陸的shell而言:
登陸Shell
讀取順序:
先讀取 /etc/profile
家目錄下的 .bash_profile
家目錄下的 .bashrc
最後讀取 /etc/.bashrc
最後讀取 /etc/profile.d 檔案的所有指令碼檔案
關於各個檔案的具體作用:
(1)/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中搜集shell的設定(即登入時自動執行/etc/profile.d目錄下的所有檔案)。
(2)/etc/bashrc: 為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。
(3)~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。
(4)~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。
(5)
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案.
另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承
/etc/profile中的變數,他們是"父子"關係。(即在/etc/ 目錄下配置的只針對全域性的,任何使用者都能用)
(6)~/.bash_profile 是互動式、login 方式進入 bash 執行的~/.bashrc 是互動式 non-login 方式進入 bash 執行的通常二者設定大致相同,所以通常前者會呼叫後者。
好了,先說到這吧!
以上內容部分來自網路。