在 Debian 系统中切换 GCC 版本,通常使用 update-alternatives 机制。下面按常见场景说明。
ls /usr/bin/gcc*
gcc --version
例如同时安装 gcc-11 和 gcc-12:
sudo apt update
sudo apt install gcc-11 g++-11 gcc-12 g++-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \
--slave /usr/bin/g++ g++ /usr/bin/g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 \
--slave /usr/bin/g++ g++ /usr/bin/g++-12
--slave可保证g++与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
输入编号并回车即可切换。
gcc --version
g++ --version
export CC=gcc-11
export CXX=g++-11
或直接在编译时指定:
make CC=gcc-11 CXX=g++-11
echo 'export CC=gcc-11' >> ~/.bashrc
echo 'export CXX=g++-11' >> ~/.bashrc
source ~/.bashrc
说明该 GCC 未注册,可手动添加(见第三步)。
可启用 backports:
sudo apt install -t bookworm-backports gcc-13 g++-13
| 场景 | 推荐方式 |
|---|---|
| 系统级切换 | update-alternatives |
| 编译单个项目 | CC=gcc-11 CXX=g++-11 |
| Docker / CI | 直接指定 gcc 版本路径 |
如果你能告诉我 Debian 版本(如 11 / 12) 或 需要哪个 GCC 版本,我可以给你精确命令。