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++ 的版本,这在某些情况下可能更灵活。

相关推荐

  1. mac切换node版本

    2024-07-19 17:26:01       56 阅读
  2. 切换node版本

    2024-07-19 17:26:01       22 阅读
  3. mac切换本地node版本

    2024-07-19 17:26:01       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 17:26:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 17:26:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 17:26:01       58 阅读
  4. Python语言-面向对象

    2024-07-19 17:26:01       69 阅读

热门阅读

  1. 第 8 章 虚拟文件系统(3)

    2024-07-19 17:26:01       20 阅读
  2. linux yum,rpm,dkpg,apt区别

    2024-07-19 17:26:01       21 阅读
  3. 【C++】C++中find_first_of函数解析

    2024-07-19 17:26:01       19 阅读
  4. PHP MySQL 读取数据

    2024-07-19 17:26:01       18 阅读