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

相关推荐
绿箭柠檬茶31 分钟前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
风_峰33 分钟前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
獭.獭.1 小时前
Linux -- 信号【上】
linux·运维·服务器
hashiqimiya1 小时前
centos配置环境变量jdk
linux·运维·centos
hashiqimiya1 小时前
权限更改centos中系统文件无法创建文件夹,使用命令让普通用户具备操作文件夹
linux
路由侠内网穿透2 小时前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
ZERO_pan5 小时前
服务器装机遇到的问题
运维·服务器
逆小舟5 小时前
【Linux】人事档案——用户及组管理
linux·c++
青草地溪水旁5 小时前
pthread_mutex_lock函数深度解析
linux·多线程·pthread
l1t5 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb