温馨提示×

Debian GCC怎么设置默认

小樊
35
2026-07-15 19:13:47
栏目: 智能运维

在 Debian 系统中设置 GCC 默认版本,常见做法有几种,下面按推荐程度给你说明,并附上示例。


一、使用 update-alternatives(最推荐 ✅)

这是 Debian / Ubuntu 官方推荐的方式,适合系统级切换。

1️⃣ 查看当前已安装的 GCC 版本

ls /usr/bin/gcc*

例如:

/usr/bin/gcc-11
/usr/bin/gcc-12

2️⃣ 将多个 GCC 加入 alternatives 系统

如果还没加入,可以先执行(以 gcc-11 和 gcc-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

数字越大,优先级越高(仅影响自动模式)


3️⃣ 设置默认 GCC 版本

sudo update-alternatives --config gcc

输出示例:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

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

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

输入编号即可切换。


4️⃣ 验证

gcc --version

二、同时设置 g++(非常重要 ⚠️)

如果你用 C++,一定要同步设置 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
sudo update-alternatives --config g++

否则可能出现:

gcc 和 g++ 版本不一致,导致编译异常


三、临时切换(仅当前 shell)

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

或:

export PATH=/usr/bin:$PATH

⚠️ 只对当前终端有效,不推荐长期使用。


四、删除某个 GCC 的 alternatives 配置

sudo update-alternatives --remove gcc /usr/bin/gcc-11

五、常见问题

❓ 为什么不建议直接改 /usr/bin/gcc 软链接?

  • system updates 可能覆盖
  • 不利于多版本共存
  • update-alternatives 更安全、可回滚

六、总结(推荐做法)

系统级默认 GCC

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

保持 gcc / g++ 版本一致


如果你愿意,可以告诉我:

  • Debian 版本(如 11 / 12)
  • 是想 系统默认 还是 某个项目单独用
  • 是否需要 交叉编译 / CUDA / 内核编译

我可以给你更精确的方案。

0