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

ubuntu gcc g++版本切换

要将 GCC 和 G++ 的版本从 12.4 降低到 9,你可以按照以下步骤操作:

安装 GCC 和 G++ 9:

sudo apt update sudo apt install gcc-9 g++-9

使用 update-alternatives 设置优先级:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 --slave /usr/bin/g++ g++ /usr/bin/g++-12 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9

选择要使用的版本:

sudo update-alternatives --config gcc

在出现的菜单中选择 gcc-9。

验证版本:

gcc --version g++ --version

注意事项:

  • 这不会删除 GCC 12.4,只是改变默认版本。
  • 某些依赖于较新 GCC 版本的软件可能会受影响。
  • 确保系统中没有正在运行的依赖于 GCC 12.4 的进程。

只在特定项目中使用 GCC 9:

  • 可以在编译命令中直接指定版本,如:
    gcc-9 your_file.c -o your_program g++-9 your_file.cpp -o your_program
  • 或者在 Makefile 中设置:
    CC=gcc-9 CXX=g++-9

    这个方法不会影响其他依赖于特定 GCC 版本的系统组件。如果你之后想恢复到 GCC 12.4,只需再次运行 update-alternatives --config 命令并选择相应版本。

错误处理:

  • update-alternatives: error: alternative g++ can't be slave of gcc: it is a master alternative

这个错误表明 g++ 已经被设置为一个独立的主选项(master alternative),而不是 gcc 的从属选项(slave alternative)。这种情况通常发生在系统之前被配置为单独管理 gccg++。我们需要稍微调整一下方法来解决这个问题。

以下是修改后的步骤:

  1. 首先,为 gccg++ 分别设置替代选项: 对于 gcc:
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90

  2. 对于 g++:
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120 
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
  3. 然后,分别为 gccg++ 选择版本:

        对于 gcc:

sudo update-alternatives --config gcc

        对于 g++:

sudo update-alternatives --config g++

在每个命令后,你会看到一个菜单,选择对应的 gcc-9 和 g++-9。

        验证版本:

gcc --version g++ --version

这种方法允许你单独管理 gccg++ 的版本,这在某些情况下可能更灵活。

http://www.lryc.cn/news/402400.html

相关文章:

  • 如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等
  • Java面试八股之什么是Redis的缓存更新
  • 新华三H3CNE网络工程师认证—VLAN使用场景与原理
  • Linux-开机自动挂载(文件系统、交换空间)
  • [003-02-10].第10节:Docker环境下搭建Redis主从复制架构
  • uni-app学习HBuilderX学习-微信开发者工具配置
  • 持续集成08--Jenkins邮箱发送构建信息及测试报告
  • 专题四:设计模式总览
  • 基于X86+FPGA+AI数字化医疗设备:全自动尿沉渣检测仪
  • vue2导入elementui组件库
  • Django定时任务框架django-apscheduler的使用
  • 知识库文档处理,word转markdown
  • TF和TF-IDF区别和联系
  • 02线性表 - 链表
  • 高性能、安全、低碳绿色的趋势下,锐捷网络发布三擎云办公解决方案 3.0
  • python3 shutil排除特定或者模糊匹配文件或目录
  • Spire.PDF for .NET【文档操作】演示:如何在 C# 中切换 PDF 层的可见性
  • 新文件覆盖旧文件还能复原吗?八大excel文档修复软件免费
  • Android 10.0 Launcher3拖拽图标进入hotseat自适应布局功能实现一
  • 彻底解决idea的编解码问题
  • 仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测
  • vue使用x6画流程图,简单使用
  • 低代码中间件学习体验分享:业务系统的创新引擎
  • 阿里云ACP云计算高级攻城狮通用知识
  • log4js node日志插件
  • 【MQTT(3)】开发一个客户端,QT-Android安卓手机版本
  • 大数据之数据抽取架构演变过程
  • [web]-反序列化-绕过__wakeup(转)
  • B树与B+树的区别
  • 机器人开源调度系统OpenTCS-6最新版本地源码运行