ubuntu系统管理和切换多版本的gcc和g++

        由于本人的ubuntu22.04系统默认装了gcc11版本,前段时间由于安装英伟达驱动需要gcc12,因此安装了gcc12,后来又因为要编译一些代码,gcc11以后的版本不支持,因此又想切换回gcc11,网上找了一些教程,发现此篇文章的内容比较方便,因此记录一下。

参考:【Linux】Ubuntu22.04版本下实现gcc版本的快速切换_ubuntu22.04 gcc版本-优快云博客

一、检查安装的gcc版本

输入命令

dpkg -l | grep gcc

可以看到目前安装了哪些版本的gcc,如图所示,g++也是同理,后面就不重复了。

如果你还想安装其他版本的gcc和g++,可以输入如下命令安装

# sudo apt install gcc-version g++-version, eg
sudo apt install gcc-9 g++-9

查看当前gcc版本,输入如下命令

gcc --version

二、配置update-alternatives工具

update-alternatives工具可以很方便地进行gcc和g++版本的切换,不需要手动设置软链接。在此之前,可以通过如下命令查看一下当前已配置的gcc版本及其优先级。

update-alternatives --display gcc

如图所示,已配置的为gcc-12,优先级是12。

接下来将你想要管理的gcc和g++版本通过update-alternatives工具配置服务了,输入如下命令

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 --slave /usr/bin/g++ g++ /usr/bin/g++-11

解释一下:

  • --install代表我们需要注册一个新的服务名
  • /usr/bin/gcc代表我们目标的最终地址,切换软链接的时候会切换该地址的软链接
  • gcc代表我们用于管理服务的名字
  • /usr/bin/gcc-11代表被管理的gcc版本的绝对路径
  • 11代表优先级,数字越大优先级越高,可以随意设置
  • --slave代表从属命令,参数顺序和前面几个一样,配置的是g++的版本,不用重复再执行命令,当我们把gcc版本进行切换的时候,g++版本也会跟着一起切换

同理,也要把其他版本的gcc和g++注册进去,这里省略。如果此项命令失败,有可能之前单独注册了gcc和g++,无法将g++作为slave从属注册,可以输入如下命令进行清理。

sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++

清理完之后,再进行上述的install注册即可。

三、版本切换

输入如下命令

sudo update-alternatives --config gcc

可以看到此时有两个版本的可选项,目前默认为gcc12。

输入序号来选择你需要切换的gcc版本,回车即可。

再次检查一下是否成功切换

可以看到,gcc和g++版本都切换到11.4版本了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值