温馨提示×

linux c++配置如何选版本

小樊
41
2026-09-02 02:39:47
栏目: 编程语言

Linux 下用 C++ 开发时,“选版本”通常涉及三层概念,搞清楚这三层就能避免踩坑:


一、C++ 语言标准版本(最重要)

这是你写代码时遵循的 C++ 标准

常见版本:

  • C++11(最基础,旧项目常用)
  • C++14
  • C++17(✅ 推荐主流)
  • C++20(新特性多,但工具链支持参差)
  • C++23(很新,不建议生产)

如何选?

  • 新项目:C++17 ✅
  • 嵌入式 / 老系统:C++11 / C++14
  • 研究 / 新特性:C++20

编译器开启方式

g++ -std=c++17 main.cpp -o main

CMake 中:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

二、编译器版本(gcc / clang)

决定你能用哪个 C++ 标准

查看版本

g++ --version
clang++ --version

版本对照(简化)

编译器 C++17 C++20
gcc 7
gcc 9 ⚠️
gcc 11+
clang 10+

建议

  • Ubuntu 20.04 → gcc 9(够用)
  • Ubuntu 22.04+ → gcc 11/12 ✅
  • 需要 C++20 → gcc ≥ 11

安装新编译器(示例)

sudo apt install g++-11
g++-11 -std=c++20 main.cpp

三、系统 / 库版本(容易被忽略)

1️⃣ glibc 版本

ldd --version
  • 低版本系统(CentOS 7)可能不支持新标准库

2️⃣ 第三方库

  • Boost
  • protobuf
  • OpenCV

⚠️ 库版本必须和编译器 & 标准匹配


四、推荐组合(实战)

最稳组合(2024)

Linux (Ubuntu 22.04)
gcc 11 / clang 14
C++17

前沿组合

Linux + gcc 13
C++20

五、如何检查当前用的是哪套?

echo | g++ -dM -E -x c++ - | grep cplusplus

输出示例:

#define __cplusplus 201703L   // C++17

六、常见坑

❌ 系统 gcc 太老却写 C++20
❌ CMake 没设 CXX_STANDARD
❌ 混用不同 gcc 编译的库


如果你愿意,可以告诉我:

  • 你用的 Linux 发行版
  • 是否用 CMake
  • 学习 / 项目 / 面试 / 嵌入式

我可以给你一套精确配置方案

0