ubuntu系统必须安装build-essential元包而非仅gcc,因其包含gcc、g++、make、libc-dev等完整开发组件,避免头文件缺失和configure失败;验证需执行gcc --version && g++ --version && make --version。

直接装对应发行版的开发工具组,别只装 gcc 单包——它不带头文件、不带 g++、不带 make,后续 configure 准挂。
先确认系统类型再动手
不同发行版命令不通用,混用会卡在第一步。最稳方式是看 /etc/os-release:
-
ID="ubuntu"或ID_LIKE="debian"→ 用apt -
ID="centos"、ID="rhel"、ID="fedora"→ 用yum(CentOS 7)或dnf(CentOS 8+ / RHEL 8+ / Fedora) -
ID="arch"或ID="manjaro"→ 用pacman
别凭记忆猜,运行
cat /etc/os-release | grep -E "^(ID|ID_LIKE)="一眼就能定。
Ubuntu/Debian 系统必须装 build-essential
只运行 sudo apt install gcc 是不够的:它缺 g++、缺 libc-dev、缺 make,编译 C++ 或链接标准库时会报 stdio.h: No such file or directory。
- 先更新索引:
sudo apt update - 再装完整链:
sudo apt install build-essential - 验证是否真齐:
gcc --version && g++ --version && make --version都得有输出
注意:build-essential 不含 gdb 或 cmake,调试或构建现代项目还得额外补。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
RHEL/CentOS/Fedora 系统别漏 "Development Tools" 组
单独 yum install gcc 或 dnf install gcc 会缺失 glibc-devel、libstdc++-devel 等关键头文件,导致 #include <stdio.h></stdio.h> 直接失败。
- CentOS 7 / RHEL 7:
sudo yum groupinstall "Development Tools" - CentOS 8+ / RHEL 8+ / Fedora:
sudo dnf groupinstall "Development Tools" - 装完检查:
ls /usr/include/stdio.h应存在;gcc -xc++ -E - /null不报错才算 C++ 前端也到位
如果系统很老(如 CentOS 7 默认 gcc 4.8.5),而你需要 C++17 支持,光装这个组没用——得走 SCL 或源码编译。
Arch/Manjaro 要装 base-devel,不是只装 gcc
sudo pacman -S gcc 只装编译器本体,不带 make、autoconf、binutils,configure 阶段就会提示 make: command not found。
- 先同步升级:
sudo pacman -Syu - 再装元包:
sudo pacman -S base-devel - 验证:
which gcc和which make都应返回路径
Arch 用户容易忽略的是:base-devel 不包含 cmake 或 ninja,很多新项目依赖它们,得单独 pacman -S cmake ninja 补上。
最容易被忽略的点是:装完之后没验证 pkg-config 是否可用——Nginx、Python 扩展、Redis 模块等大量源码项目在 configure 时靠它查库路径,缺了就报 checking for OpenSSL library ... not found,但错误信息根本不提 pkg-config 缺失。










