在 Linux 下做 C++ 开发时“选版本”,通常涉及 三个层面,分别搞清楚就不会乱:
这是你代码能用的语法和标准库特性。
| 标准 | 说明 |
|---|---|
| C++98 / C++03 | 老项目 |
| C++11 | 现代 C++ 起点(推荐最低) |
| C++14 | 小改进 |
| C++17 | 目前最常用 ✅ |
| C++20 | 新特性多(concepts、ranges) |
| C++23 | 较新,编译器支持不完全 |
g++ -std=c++17 main.cpp
CMake 中:
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
不同编译器对 C++ 标准支持不同。
g++ --version
clang++ --version
| 系统 | 推荐 |
|---|---|
| Ubuntu 20.04+ | gcc 9+ |
| Ubuntu 22.04 | gcc 11 ✅ |
| 新项目 | gcc 11 / clang 14+ |
sudo apt install gcc-11 g++-11
sudo update-alternatives --config g++
如果你用库(如 Boost、protobuf):
sudo apt install libboost-dev
或源码指定版本编译。
✅ 最稳妥
✅ 先进一点
如果你愿意,可以告诉我:
我可以直接给你一套具体配置方案。