linux下多个gcc版本之间切换的相关操作

零、背景(更换gcc版本的原因)

本人在跑mamba模型时需要运行这条指令: pip install causal_conv1d==1.0.0,但是运行后报出关于gcc版本的警告,于是经过搜索得知cuda版本与gcc版本有一定的对应关系,具体的对应关系如这条博客所写:NVIDIA 驱动和 CUDA 版本信息速查。本人使用的是cuda11.8,所以我需要把gcc版本切换到gcc11。gcc版本切换完成后,关于gcc的警告不再出现。

一、安装多个gcc、g++使用的是apt包管理器

1.1更新包列表

sudo apt update

1.2安装gcc的特定版本,例如gcc11

sudo apt install gcc-9 g++-9

1.3查看gcc版本

gcc -v

或者

gcc --version

查看当前安装的gcc的各个版本:

ls /usr/bin/gcc* -l
ls /usr/bin/gcc*
ls /usr/bin/g++*

在这里插入图片描述

1.4设置gcc与g++的优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 80
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 60

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 80
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 60

在这里插入图片描述

1.5通过update-alternatives工具实现不同版本gcc之间的快捷切换

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
查看有哪些可选的gcc(需要经过1.4的优先级配置才生效,不然会报错,如下所示)

lwl@lwl-Legion-Y7000P-IRH8:~$ sudo update-alternatives --config gcc
[sudo] lwl 的密码: 
update-alternatives: 错误: 无 gcc 的候选项

查看有哪些可选的gcc、g++:

sudo update-alternatives --config gcc

在这里插入图片描述

sudo update-alternatives --config g++

在这里插入图片描述

1.6其他博客上看到的使用update-alternatives的切换方式

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9
# 设置多个版本的gcc可供选择。70,60数字代表的是不同版本的优先级,默认最大数字版本的优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值