Debian 上 C++ 版本管理的核心思路
安装与切换 GCC 工具链
gcc --version、g++ --versionsudo apt update && sudo apt install gcc-12 g++-12(示例为 12;Debian 12 常见为 12/13,旧版可能为 10/11)。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 --install /usr/bin/g++ g++ /usr/bin/g++-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120
# 可选:为 cc/c++ 也建立替代项,便于被部分脚本使用
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 100
sudo update-alternatives --config gcc、sudo update-alternatives --config g++gcc --version、g++ --version。export CC=/usr/bin/gcc-11
export CXX=/usr/bin/g++-11
该方式对 Make/CMake 等会读取 CC/CXX 的工具立即生效。
选择和管理 C++ 标准
g++ -std=c++17 hello.cpp -o hello
g++ -std=c++20 hello.cpp -o hello
-std=c++17 -Wall -Wextra -O2 -g(开启常用警告、优化与调试信息)。进阶场景与注意事项
dpkg -i *.deb 安装,然后用 update-alternatives 注册与切换。此法属于“混源”操作,务必评估依赖与风险,优先使用同发行版同版本的官方包。CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -O2
export CXXFLAGS="-std=c++17 -O2 -Wall"(写入 ~/.bashrc 可持久化)。update-alternatives --config gcc/g++ 做“全局切换”,用环境变量做“会话/项目级切换”,两者可叠加使用。