在 Debian 系统中切换 GCC(即在不同 GCC 版本之间选择)通常通过 update-alternatives 机制完成。下面按常见需求给你详细说明。
ls /usr/bin/gcc*
或:
dpkg -l | grep gcc
update-alternatives --display gcc
update-alternatives --list 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
数字越大,优先级越高(非交互模式下优先用)。
同理处理 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 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
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
适合编译单个项目。
某些最小系统未启用,可按上面的 --install 手动创建。
cc、c++、clang 等也可以用类似方式管理。
| 场景 | 推荐 |
|---|---|
| 系统默认 | update-alternatives |
| 单个项目 | export CC/CXX |
| 编译工具链固定 | Docker / Conan / venv |
如果你告诉我:
我可以给你 精确到命令级别 的操作步骤。