必须安装完整工具链而非仅g++:ubuntu/debian执行sudo apt install build-essential,centos/rhel/fedora执行sudo dnf/yum groupinstall "development tools",否则缺头文件、链接库或c++标准支持将导致编译失败。

装完 g++ 就能编 C++ 代码,但只跑 sudo apt install g++ 或 sudo yum install gcc-c++ 很可能编不过——缺链接库、缺头文件、std::thread 报错、-std=c++17 不认,都是常见结果。
别只装 g++,得装整套工具链
单独装 g++ 包在多数发行版里会漏掉关键依赖。真正要的是“开发工具集合”,不是单个二进制:
- Ubuntu/Debian:必须用
sudo apt update && sudo apt install build-essential——它打包了g++、gcc、make、libc6-dev(提供pthread.h等头文件) - CentOS/RHEL/AlmaLinux:用
sudo dnf groupinstall "Development Tools"(新版)或sudo yum groupinstall "Development Tools"(旧版),不能只yum install gcc-c++,否则cc1plus找不到 - Fedora:同 CentOS,但某些镜像需先补
dnf install gcc-g++再确认glibc-devel已装
装完立刻验证三件事:g++ --version、gcc --version、make --version。少一个就说明工具链不全。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
编译失败时先看错误类型再动手
很多报错不是没装对,而是没意识到 g++ 和 gcc 的行为差异:
-
g++: error trying to exec 'cc1plus': execvp: No such file or directory→gcc本体没装,补sudo apt install gcc或sudo dnf install gcc -
undefined reference to `pthread_create'→ 缺线程库,Ubuntu 装libc6-dev(已含在build-essential中),CentOS 补sudo dnf install glibc-devel -
error: ‘filesystem’ is not a member of ‘std’(用std::filesystem)→ GCC 版本太低,CentOS 7 默认 4.8.5 不支持 C++17,得手动升 GCC 或加-lstdc++fs -
gcc main.cpp报undefined reference to `std::cout'→ 别混用gcc编 C++ 文件,一律用g++ main.cpp -o main
离线环境怎么装不是靠猜
没网时不能只下 g++ rpm/deb 包,它依赖几十个底层包。正确做法是:
- 在同版本联网机器上,用
apt download build-essential(Debian/Ubuntu)或dnf download --resolve @'Development Tools'(Fedora/RHEL)批量下载所有依赖 - 把下载的包拷到离线机,用
sudo apt install ./g++_*.deb ./gcc_*.deb ...(Ubuntu)或sudo rpm -Uvh *.rpm(RHEL)安装 - 特别注意:
glibc-devel、libstdc++-devel、binutils这三个包必须存在,否则#include <vector></vector>都过不了预处理
真正卡住人的从来不是“装没装”,而是“装齐没装齐”和“用对没用对”。g++ 命令背后牵扯的头文件路径、链接器搜索顺序、标准库 ABI 版本,任何一个出偏差都会让 main() 编不过。验证环境别只看 --version,一定要写个含 std::thread 和 std::filesystem 的小文件实测。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!










