在Ubuntu运行的Linux下,有一个7.5.0版本的arm-linux-gnueabihf-gcc的交叉编译器,我想换一个更高级的交叉编译器,然后我就尝试从网上下载一个11.3.1版本的arm-linux-gnueabihf-gcc的交叉编译器,把它解压到 /usr/local/arm 目录下(arm是我自己创建的一个文件夹),给arm文件夹满权限(sudo chmod 777 arm)。
我将环境变量配置到 vim /etc/profile 里面,/etc目录下的profile设置的环境变量是永久设置的,也是供所有用户使用的,要是在~/.bashrc下设置环境变量,那么该环境设置只在该用户下生效。
配置如下:
export PATH=$PATH:/usr/local/arm/gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf/lib
wq保存退出,source /etc/profile,使配置生效。
然后在终端下echo $PATH,也成功显示我配置的环境路径。但结果是我arm-linux-gnueabihf-gcc -v查看交叉编译器版本还是显示原来的7.5.0版本的编译器。重启过系统也还是一样的情况。
解决方法:
是因为7.5.0的arm-linux-gnueabihf-gcc的编译器是我通过apt-get直接安装到系统目录/usr/bin上了,在Linux系统启动时会默认使用/usr/bin下的交叉编译器(推测),解决方法就是将原有的7.5.0版本的arm-linux-gnueabihf-gcc及相关版本交叉编译器卸载,利用如下命令进行卸载原有交叉编译器:
sudo apt remove gcc-arm-linux-gnueabihf
sudo apt remove --auto-remove gcc-arm-linux-gnueabihf
然后再进行上面的配置环境步骤就可以成功使用arm-linux-gnueabihf-gcc -v显示自己安装的交叉编译器了。