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:
- /home/Linux/ARM-none-Linux-gnueabi/bin/ARM-none-Linux-gnueabi-gcc
- /home/Linux/zkf/gcc-4.4.4-glibc-2.11.1-multilib-1.0/ARM-fsl-Linux-gnueabi/bin/ARM-none-Linux-gnueabi-gcc
- /home/Linux/zkf/opt/FriendlyARM/toolschain/4.5.1/bin/ARM-none-Linux-gnueabi-gcc
- /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.
来源: http://www.bubuko.com/infodetail-2931188.html