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。