温馨提示×

怎么切换 Debian GCC

小樊
42
2026-07-02 05:56:14
栏目: 智能运维

在 Debian 系统中切换 GCC(即在不同 GCC 版本之间选择)通常通过 update-alternatives 机制完成。下面按常见需求给你详细说明。


一、查看系统已安装的 GCC

ls /usr/bin/gcc*

或:

dpkg -l | grep gcc

二、使用 update-alternatives 切换 GCC

1️⃣ 查看当前 GCC 设置

update-alternatives --display gcc

2️⃣ 查看有哪些可选版本

update-alternatives --list gcc

如果提示 没有 alternatives,说明还没配置,需要先添加。


3️⃣ 添加 GCC 到 alternatives(如未配置)

假设你安装了 gcc-11gcc-12

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120

数字越大,优先级越高(非交互模式下优先用)。

同理处理 g++

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120

4️⃣ 手动选择默认 GCC

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

示例输出:

There are 2 choices for the alternative gcc.

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-12    120       auto mode
  1            /usr/bin/gcc-11    110       manual mode

输入数字回车即可切换。


三、验证切换结果

gcc --version
g++ --version

四、安装多个 GCC 版本(如未安装)

sudo apt update
sudo apt install gcc-11 g++-11 gcc-12 g++-12

如需更老的版本(如 gcc-9):

sudo apt install gcc-9 g++-9

五、临时切换(不修改系统默认)

只对当前终端生效:

export CC=gcc-11
export CXX=g++-11

适合编译单个项目。


六、常见问题

❓ Debian 没有 alternatives?

某些最小系统未启用,可按上面的 --install 手动创建。

❓ update-alternatives 只对 gcc 有效?

ccc++clang 等也可以用类似方式管理。


七、推荐做法

场景 推荐
系统默认 update-alternatives
单个项目 export CC/CXX
编译工具链固定 Docker / Conan / venv

如果你告诉我:

  • Debian 版本(如 11 / 12)
  • 想切换的 GCC 版本(如 9 / 11 / 13)

我可以给你 精确到命令级别 的操作步骤。

0