update-alternatives安装gcc多版本

1: 安装update-alternatives

  • 该工具属于dpkg软件包管理系统的核心组件,一般系统已预装。若提示命令不存在,可通过以下命令安装
  • 安装: sudo apt install dpkg
  • 验证: update-alternatives --help

2: ​添加旧版本软件源(针对gcc-4.8.5)

  • 由于Ubuntu 2024.04的默认源可能不包含gcc-4.8.5,需要手动添加旧版仓库:
1
2
sudo sed -i '$a deb http://archive.ubuntu.com/ubuntu/ xenial main universe' /etc/apt/sources.list
sudo apt update

3: 安装各版本GCC/G++

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 安装gcc/g++ 4.8.5(需依赖旧版源)
sudo apt install gcc-4.8 g++-4.8

# 安装gcc/g++ 7和9
sudo apt install gcc-7 g++-7 

#(默认源支持)
sudo apt install gcc-9 g++-9


# 如果apt 安装不了,手动下载安装
https://ftp.gnu.org/gnu/gcc/

4: 配置update-alternatives

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 添加gcc版本(优先级数值越大优先级越高)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 \ 
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-4.8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 \ 
--slave /usr/bin/g++ g++ /usr/bin/g++-7 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 \ 
--slave /usr/bin/g++ g++ /usr/bin/g++-9 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130 \ 
--slave /usr/bin/g++ g++ /usr/bin/g++-13 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-13

5: 切换默认版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 交互式选择版本
sudo update-alternatives --config gcc

# 输出示例:
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-9     90        auto mode
  1            /usr/bin/gcc-4.8   40        manual mode
  2            /usr/bin/gcc-7     70        manual mode
  3            /usr/bin/gcc-9     90        manual mode

Press <Enter> to keep the current choice[*], or type selection number: 

6: 版本验证

1
2
gcc --version  # 应显示当前选择的版本
g++ --version  # 应与gcc版本一致