当前位置: 首页 > 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

相关文章:

  • PowerShell从5.1升级到7.X
  • C++类_运算符的重载
  • 线性DP(动态规划)
  • flask 获取各种请求数据:GET form-data x-www-form-urlencoded JSON headers 上传文件
  • 物联网智能项目之——智能家居项目的实现!
  • 开源项目实战学习之YOLO11:ultralytics-cfg-models-rtdetr(十一)
  • 循环缓冲区
  • 实验-组合电路设计1-全加器和加法器(数字逻辑)
  • 大数据:驱动技术创新与产业转型的引擎
  • 节流 和 防抖的使用
  • 【C语言练习】018. 定义和初始化结构体
  • ai之paddleOCR 识别PDF python312和paddle版本冲突 GLIBCXX_3.4.30
  • 提升办公效率的PDF转图片实用工具
  • 学习黑客资产威胁分析贴
  • 《MATLAB实战训练营:从入门到工业级应用》趣味入门篇-用声音合成玩音乐:MATLAB电子琴制作(超级趣味实践版)
  • NocoDB:开源的 Airtable 替代方案
  • 二叉树最近公共祖先(后序遍历,回溯算法)
  • springboot war包tomcat中运行报错,启动过滤器异常,一个或多个筛选器启动失败。
  • 关于Python:7. Python数据库操作
  • 经典算法 求解硬币组成问题
  • 超导电路新设计有望提升量子处理器速度
  • 证券时报头版:巴菲特留给投资界的珍贵启示
  • 罗马尼亚总理乔拉库宣布辞职
  • 特朗普要征100%关税,好莱坞这批境外摄制新片能躲过吗?
  • 降雪致长白山天池景区关闭,有游客在户外等待一小时,景区回应
  • 抗战回望17︱《青年界》:给一般青年供给一些精神的食料