在 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 版本。

相关推荐
叮咚侠24 分钟前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
故乡dee云25 分钟前
华为云国际服务器连不上怎么办?安全组、端口、IP 和网络排查方法
服务器·网络·华为云
佳児素花痴╮44 分钟前
服务器模型、网络调试工具、网络协议头分析
服务器·网络·网络协议
左手厨刀右手茼蒿2 小时前
数据仓库的架构演进:从MySQL到ClickHouse到数据湖的工程化实践
linux·嵌入式·系统内核
左手厨刀右手茼蒿3 小时前
创业团队技术选型:别用大厂架构解决小团队问题
linux·嵌入式·系统内核
明志数科3 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
Data_Journal3 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
bosins3 小时前
将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中
linux·windows·ubuntu
AC赳赳老秦4 小时前
语义采集进阶实战:利用 OpenClaw AI 语义识别自动提取网页核心信息,无需手动编写选择器
java·运维·服务器·python·信息可视化·deepseek·openclaw
我星期八休息4 小时前
扩展—DNS与ICMP
linux·服务器·网络