在 Debian 系统中切换 GCC 版本通常有两种常见方式:update-alternatives(推荐) 和 手动指定路径。下面按常用场景详细说明。
ls /usr/bin/gcc*
或
gcc --version
例如安装 GCC 9 和 GCC 11:
sudo apt update
sudo apt install gcc-9 g++-9 gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
数字(90 / 110)是优先级,数字越大优先级越高
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
示例输出:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-11 110 auto mode
1 /usr/bin/gcc-9 90 manual mode
2 /usr/bin/gcc-11 110 manual mode
输入编号回车即可切换。
gcc --version
g++ --version
export CC=gcc-9
export CXX=g++-9
适合编译单个项目,不影响系统全局。
sudo update-alternatives --remove gcc /usr/bin/gcc-9
sudo update-alternatives --remove g++ /usr/bin/g++-9
可能是该 GCC 未注册,重新执行 --install 即可。
建议:
update-alternatives 设为默认make CC=gcc-9sudo update-alternatives --config gcc
sudo update-alternatives --config g++
如果你告诉我 Debian 版本(如 11 / 12) 或 使用场景(内核、CUDA、ROS 等),我可以给你更精确的配置方案。