当前位置: 首页 > news >正文

Ubuntu 24.04 通过 update-alternatives 切换GCC版本

在 Ubuntu 中编译项目, 会遇到项目依赖于某个特定版本 GCC 的情况, 例如 Ubuntu 24.04 的默认 GCC 版本是 13, 但是有一些项目需要 GCC11才能正常编译, 在 Ubuntu 24.04 默认的环境下编译会报错. 这时候可以通过 update-alternatives 切换GCC版本.

all 展示全部

--all参数会展示现在系统中所有的可替换版本设置(并设置), 这个列表很长

sudo update-alternatives --all

install 创建

首先要用 update-alternatives --install 命令创建一个 gcc 的替换列表, 并把这些可用的版本都加进去.

update-alternatives --install [link] [name] [path] [priority]

priority 数字越大优先级越高, 最高优先级的会成为自动 auto 选择的版本

例如

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

list, display, query 查看

查看可以通过 --list, --display, --query命令

update-alternatives --list gcc
update-alternatives --display gcc
update-alternatives --query gcc

config, set 选择

通过 config 选择需要的 gcc 版本

sudo update-alternatives --config gcc

会出现选择菜单

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-13   13        auto mode1            /usr/bin/gcc-11   11        manual mode2            /usr/bin/gcc-13   13        manual modePress <enter> to keep the current choice[*], or type selection number: 

通过 set 直接选择

sudo update-alternatives --set gcc /usr/bin/gcc-12
sudo update-alternatives --set g++ /usr/bin/g++-12

remove, remove-all 删除

# 删除1项
sudo update-alternatives --remove gcc /usr/bin/gcc-7
# 删除整个gcc
sudo update-alternatives --remove-all gcc
http://www.xdnf.cn/news/262225.html

相关文章:

  • 什么是多租户系统
  • Maven 实现多模块项目依赖管理
  • WITH在MYSQL中的用法
  • 具身系列——PPO算法实现CartPole游戏(强化学习)
  • Oracle OCP认证考试考点详解083系列04
  • 单片机嵌入式按键库
  • Maven安装配置以及Idea中的配置教程
  • C# 操作符
  • 【LeetCode Hot100】栈篇
  • 计算机视觉与深度学习 | 视觉里程计算法综述(传统+深度)
  • 复刻低成本机械臂 SO-ARM100 组装篇(打螺丝喽)
  • firewall docker 冲突问题解决(亲测有效)
  • Windows下编译WebRTC源码
  • [更新完毕]2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • AtCoder Beginner Contest 404(ABCDE)
  • 什么是运算符重载
  • word怎么删除空白页?word最后一页删不掉怎么办
  • 基于开源AI大模型与AI智能名片S2B2C商城小程序的线上活动执行优化研究
  • SQL中的Subquery CTE Temporary Table 区别
  • HTTP基础介绍+OSI七层参考模型+HTTP协议介绍
  • 【Elasticsearch】实现气象数据存储与查询系统
  • 总账业务数据——Part 1
  • 单片机嵌入式CAN库
  • 在 Ubuntu 上安装 cPanel
  • 【Qt】初识Qt
  • 【科研绘图系列】R语言绘制世界地图(map plot)
  • 在多线程环境下如何设计共享数据结构保证原子操作与数据一致性
  • 第十章:反击的序曲(续)
  • JavaScript性能优化实战(8):缓存策略与离线优化
  • JavaScript:pc端网页特效--元素偏移量offset系列