Ubuntu 对 C++ 的支持主要体现在**系统自带的编译器(GCC / Clang)以及标准库(libstdc++ / libc++)**上,而不是“Ubuntu 只支持某个 C++ 版本”。不同 Ubuntu 版本默认搭载的编译器不同,因此支持的 C++ 标准也不同。
下面按 Ubuntu 版本 + 编译器 给你一个清晰对照。
| Ubuntu 版本 | 默认 GCC | 完整支持 C++ 标准 | 备注 |
|---|---|---|---|
| 20.04 LTS | GCC 9 | C++11 / 14 / 17 ✅ | 部分 C++20 |
| 22.04 LTS | GCC 11 | C++11 / 14 / 17 ✅ | C++20 基本完整 |
| 24.04 LTS | GCC 13 | C++11 / 14 / 17 ✅ | C++20 ✅ C++23 部分 |
| 24.10 | GCC 14 | C++11 / 14 / 17 ✅ | C++20 ✅ C++23 更完整 |
✅ 表示基本完整支持
⚠️ 表示部分支持
-std=c++11
-std=c++14
-std=c++17
-std=c++20
-std=c++23
| C++ 标准 | 关键特性 | GCC 支持情况 |
|---|---|---|
| C++11 | auto、lambda、智能指针 | ✅ 全部 |
| C++14 | 泛型 lambda、返回值推导 | ✅ 全部 |
| C++17 | if constexpr、结构化绑定 |
✅ 全部 |
| C++20 | 概念、范围库、协程 | ✅ 较完整 |
| C++23 | 新容器、格式化 | ⚠️ 逐步支持 |
Ubuntu 也支持 Clang:
| Ubuntu | Clang | libc++ | C++ 支持 |
|---|---|---|---|
| 22.04 | Clang 14 | ✅ | C++20 |
| 24.04 | Clang 18 | ✅ | C++20 / C++23 |
sudo apt install clang libc++-dev
gcc --version
g++ -std=c++20 -E -x c++ /dev/null
g++ -dM -E -x c++ /dev/null | grep __cplusplus
✅ Ubuntu 22.04
-std=c++17 # 稳定、推荐
-std=c++20 # 基本可用
✅ Ubuntu 24.04
-std=c++20 # 推荐
-std=c++23 # 可尝试
✅ 生产环境
Ubuntu 本身不限制 C++ 版本,C++ 支持取决于你安装的 GCC / Clang 版本。
如果你愿意,可以告诉我:
我可以给你最稳妥的编译器 + 编译参数建议。