Ubuntu切换编译器版本
平时在任意位置打开终端输入gcc -v或者g++ -v都能输出版本信息,原因是有个/etc/alternatives目录,里面存放了很多指令,每个指令都是一个软连接,链接到真实的指令位置。
查看自己系统支持哪些gcc版本
sudo apt-cache search gcc
下载安装
根据自己需要,安装gcc和g++版本(gcc是c语言编译器,g++是c++编译器)
//更新包列表
sudo apt update
//安装 build-essential 软件包集合
//会安装一系列软件,其中就包括 gcc、G ++ 和 make 等。
sudo apt install build-essential
//安装gcc7/g++7
sudo apt install gcc-7 g++-7
//安装gcc8/g++8
sudo apt install gcc-8 g++-8
//安装gcc9/g++9
sudo apt install gcc-9 g++-9
在安装的位置查看
cd /usr/bin/
ll g++
可以看到指向了/etc/alternatives/g++,进到/etc/alternatives目录下
cd /etc/alternatives
查看g++信息
ll g++
发现也是软链接,指向的是/usr/bin/g+±8,再回到/usr/bin/,查看g+±8
cd /usr/bin
ll g++-8
发现指向的是当前目录下的x86_64-linux-gnu-g+±8,然后就到底了,所以切换版本的方法之一是修改中间的/etc/alternatives/g++的软链接路径
cd /etc/alternatives/
sudo rm g++
sudo rm gcc
sudo ln -s /usr/bin/g++-7 g++
sudo ln -s /usr/bin/gcc-7 gcc
完成后,任意位置打开终端,输入gcc和g++,看看是不是gcc和g++的版本由之前的8.4.0切换到现在的7.5.0了。
gcc -v
g++ -v
这种办法简单容易理解,说白了就是软链接套软链接,只要改变中间的软连接的指向就可以完成切换,总之平时我们任意终端敲的gcc是指/usr/bin/gcc这个软链接,实际作用的指令是当前目录下的x86_64-linux-gnu-g+±8(加入指向的版本8),链接关系如下
/usr/bin/gcc --> /etc/alternative/gcc
/etc/alternative/gcc --> /usr/bin/gcc-8
/usr/bin/gcc-8 --> /usr/bin/x86_64-linux-gnu-g++-8
也为大家找到更加规范合理的切换版本方式,如下方的参考博客文章
ps: 更优秀的博客参考