1. 解壓文件
准備好交叉編譯工具arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2,輸入命令:tar -xjvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C .
注意命令最后有個“點”,-C . 指的是將文件解壓到當前目錄,解壓后發現在當前目錄下多了一個usr目錄,如果不使用-C .的話就會解壓到根目錄。進入usr/local/arm/arm-none-linux-gnueabi/bin目錄下ls可以看到解壓出來的交叉編譯工具:

之所以將交叉編譯工具解壓到當前目錄下是因為我不想和其他交叉編譯工具搞混。輸入arm-none-后按TAB鍵能自動補全為arm-none-linux-gnueabi-,說明我電腦上有其他同名的交叉編譯工具,所以接下來我要干兩件事:第一、把原先的交叉編譯工具干掉;第二、替換成新的交叉編譯工具。
2. 找到之前的交叉編譯工具
首先我確實不知道哪個路徑下還有這樣的交叉編譯工具,因此我輸入指令:find / -name arm-none-linux-gnueabi-gcc >> test.txt找出所有的同名編譯工具,接下來會打印出一堆Permission denied,不過我們不管它,直接打開test.txt:
1 /home/linux/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc 2 /home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc 3 /home/linux/zkf/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-gcc 4 /home/linux/zkf/6410/usr/local/arm/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
發現有4個同名的交叉編譯工具,最后一個才是我需要的,那么怎么確定系統默認的arm-none-linux-gnueabi-gcc是里面的哪一個呢,接下來輸入$PATH查看環境變量,打印信息如下(為了方便閱讀,我手動換行了):
/usr/local/arm_linux_4.3/usr/bin :/usr/lib/lightdm/lightdm :/usr/local/sbin :/usr/local/bin :/usr/sbin :/usr/bin :/sbin :/bin :/usr/games :/home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/ :/home/linux/zkf/arm/eclipse
找出兩段文本的相同之處,發現我現在的交叉編譯工具位於/home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin 目錄。
3.修改為新的交叉編譯工具
第2步中找到了原有的交叉編譯工具所在的路徑,現在我要修改環境變量,替換為新的交叉編譯工具,那么問題來了,我是在哪設置了這個環境變量。方法如下:
輸入命令:grep /home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin /etc -r >> test.txt
這條命令的意思是從/etc目錄下尋找包含內容為“/home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin”的文件,並將結果追加到test.txt之后,之所以指定/etc目錄是因為我憑經驗判斷設置環境變量的文件很可能就在/etc目錄下,如果沒有的話再去找找家目錄下,如果指定根目錄的話耗費的時間太長了,除非/etc目錄和家目錄下都沒找到再考慮從根目錄下找。命令輸完后同樣打印一堆Permission denied,仍然不管它,打開test.txt,發現文件多加了一行內容:
/etc/bash.bashrc:export PATH=$PATH:/home/linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/
也就是說我原本的交叉編譯工具的環境變量是在/etc/bash.bashrc這個文件中設置的。輸入命令:vi /etc/bash.bashrc 找到設置環境變量的一行,替換為export PATH=$PATH:/home/linux/zkf/6410/usr/local/arm/arm-none-linux-gnueabi/bin/
保存文件后輸入命令:source /etc/bash.bashrc 使配置生效。接下來可以再輸入命令$PATH查看環境變量,發現環境變量已經修改成功了,此時輸入命令arm-none-linux-gnueabi-gcc后系統便會自動調用/home/linux/zkf/6410/usr/local/arm/arm-none-linux-gnueabi/bin/目錄下的arm-none-linux-gnueabi-gcc。
