在 Ubuntu 上让 gcc 多版本共存 通常有几种常见做法,下面按「推荐程度」给你说明。
Ubuntu 官方仓库一般提供多个 gcc 版本,例如:
sudo apt update
sudo apt install gcc-9 gcc-10 gcc-11 gcc-12
安装后,你会看到:
/usr/bin/gcc-9
/usr/bin/gcc-10
/usr/bin/gcc-11
/usr/bin/gcc-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
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
数字越大,优先级越高
sudo update-alternatives --config gcc
你会看到类似:
* 0 /usr/bin/gcc-12 120 auto
1 /usr/bin/gcc-9 90
2 /usr/bin/gcc-10 100
3 /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++-10 100
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-11 main.c -o main
或 CMake:
cmake -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 ..
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-13 g++-13
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar xf gcc-13.2.0.tar.gz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/opt/gcc-13 --enable-languages=c,c++
make -j$(nproc)
sudo make install
使用时:
export PATH=/opt/gcc-13/bin:$PATH
gcc --version
g++ --version
✅ gcc 和 g++ 版本必须一致
❌ 不要混用 gcc-11 + g++-12
✅ CMake 项目建议指定编译器
❌ 不要依赖系统默认 gcc 做长期构建
如果你告诉我:
我可以给你一套精确命令方案。