在 Ubuntu 上“升级 C++ 标准”通常有两种理解,我先说明清楚,再给你做法:
这不是“升级系统”,而是编译时指定标准,前提是你的 GCC / Clang 版本足够新。
g++ --version
或
clang++ --version
常见对应关系:
g++ -std=c++17 main.cpp -o main
g++ -std=c++20 main.cpp -o main
g++ -std=c++23 main.cpp -o main
CMake 示例:
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Ubuntu 自带 GCC 往往偏旧(尤其 LTS 版本)。
sudo apt update
sudo apt install g++-11
sudo apt install g++-12
sudo apt install g++-13
使用:
g++-13 -std=c++20 main.cpp
设为默认(谨慎):
sudo update-alternatives --config g++
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-13
sudo apt install clang-15
clang++-15 -std=c++20 main.cpp
echo | g++ -std=c++20 -E -x c++ -
不报错即支持。
❌ “升级 Ubuntu 就升级 C++ 标准”
✅ 实际是 编译器版本 + 编译参数 决定
❌ “C++ 标准要单独安装”
✅ C++ 标准只是规范,由编译器实现
如果你愿意,可以告诉我:
我可以直接给你最省事的命令。