在 Linux 下做 C++ 开发时“选版本”,通常包含 三层含义。下面按最常见场景给你梳理一下,并给出具体配置方法。
这是最常用的“选版本”。
g++ -std=c++17 main.cpp -o main
常见选项:
-std=c++11
-std=c++14
-std=c++17
-std=c++20
-std=c++23 # 较新 GCC 支持
✅ 推荐:
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
完整示例:
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(demo main.cpp)
很多时候你不是选“C++标准”,而是选编译器版本。
gcc --version
g++ --version
clang --version
sudo apt install gcc-9 g++-9
sudo apt install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
sudo apt install libboost-dev
cmake -DCMAKE_PREFIX_PATH=/opt/boost_1_82_0 ..
或在 CMake 中:
find_package(Boost 1.82 REQUIRED)
| 场景 | 推荐配置 |
|---|---|
| 普通 Linux 开发 | GCC 11 + C++17 |
| 高性能计算 | GCC 12 + C++20 |
| 嵌入式 | GCC 9 + C++14 |
| 新项目 | Clang + C++20 |
升级 GCC:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-12 g++-12
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置方案。