在 Ubuntu 上安装和切换多个 GCC 版本

在软件开发过程中,有时需要在不同的 GCC 版本之间进行切换。本文将介绍如何在 Ubuntu 上安装多个 GCC 版本,并使用 update-alternatives 工具进行版本切换。

1. 安装所需的 GCC 版本

首先,更新包列表并安装所需的 GCC 版本。本文将安装 gcc-7, gcc-9gcc-11

sh 复制代码
sudo apt update
sudo apt install gcc-7 g++-7 gcc-9 g++-9 gcc-11 g++-11
2. 使用 update-alternatives 工具配置 GCC 和 G++

使用 update-alternatives 工具来管理和切换 GCC 和 G++ 版本。

sh 复制代码
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
3. 切换 GCC 和 G++ 版本

运行以下命令来选择默认的 GCC 和 G++ 版本:

sh 复制代码
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

系统会显示一个可用 GCC 和 G++ 版本的列表,输入相应的数字选择所需的版本(例如 gcc-7g++-7)。

4. 验证 GCC 和 G++ 版本

切换完成后,可以通过以下命令验证当前使用的 GCC 和 G++ 版本:

sh 复制代码
gcc --version
g++ --version
5. 手动设置环境变量(如果需要)

如果 update-alternatives 设置正确,但仍然显示旧版本,可以尝试手动设置环境变量:

  1. 编辑 .bashrc.zshrc 文件

    sh 复制代码
    nano ~/.bashrc

    或者:

    sh 复制代码
    nano ~/.zshrc
  2. 添加以下行来设置 GCC 和 G++ 的路径

    sh 复制代码
    export PATH=/usr/bin/gcc-7:$PATH
    export PATH=/usr/bin/g++-7:$PATH
  3. 保存并退出编辑器

  4. 重新加载配置文件

    sh 复制代码
    source ~/.bashrc

    或者:

    sh 复制代码
    source ~/.zshrc
6. 验证版本

再次验证 GCC 和 G++ 版本:

sh 复制代码
gcc --version
g++ --version

总结

通过上述步骤,你可以在 Ubuntu 上安装和切换多个 GCC 版本。

相关推荐
Coder个人博客11 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
较劲男子汉14 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
Doro再努力14 小时前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp14 小时前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
阿蒙Amon14 小时前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
Doro再努力14 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene14 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
不像程序员的程序媛14 小时前
Nginx日志切分
服务器·前端·nginx
忧郁的橙子.14 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧15 小时前
【linux】查看发行版信息
linux·运维·服务器