推荐安装 build-essential 而非单独装 gcc,因其作为元包自动安装匹配系统版本的 gcc、g++、make、libc6-dev 和 dpkg-dev,避免因缺失头文件、c++ 编译器或构建工具导致编译失败。

直接装 build-essential 就行,它会自动拉取匹配系统版本的 gcc、g++ 和 make,不用单独装 gcc 包——这是最稳、最省事的方式。
为什么推荐 install build-essential 而不是单独 apt install gcc
Ubuntu 官方把编译环境打包成 build-essential 元包,它不只是装 gcc,还强制依赖 libc6-dev(C 标准库头文件)、g++(避免 C++ 项目报错)、make(几乎必用)和 dpkg-dev(处理 .deb 相关工具)。单独装 gcc 可能导致:
• 编译时报错 fatal error: stdio.h: No such file or directory(缺头文件)
• 写了 C++ 代码却提示 g++: command not found
• make 命令根本不存在,连简单 Makefile 都跑不起来
安装命令和验证步骤
执行以下三步即可完成安装并确认可用:
- 更新软件列表:
sudo apt update - 安装元包:
sudo apt install build-essential - 验证是否就绪:
gcc --version和g++ --version应各自输出版本号(Ubuntu 24.04 默认是 13.x,22.04 是 11.x,18.04 是 7.5)
如果 gcc --version 报 command not found,大概率是没执行 sudo apt update 就直接装,或系统镜像源被手动改过且失效。
需要指定旧版 GCC(比如 5.4 或 9.5)怎么办
Ubuntu 官方源一般只保留 2–3 个主流版本,老版本得靠 PPA 或源码编译:
- 先查当前源里有哪些可选版本:
apt-cache policy gcc-5或apt-cache search "^gcc-[0-9]" - 加 PPA(如需 GCC 5.4):
sudo add-apt-repository ppa:ubuntu-toolchain-r/test,再sudo apt update,然后sudo apt install gcc-5=5.4.0-6ubuntu1~16.04.12(注意版本号必须完全匹配apt-cache policy输出的候选值) - 源码编译适合极端需求(如要 C23 或 Rust 支持),但必须提前装好
libgmp-dev、libmpfr-dev、libmpc-dev,且构建目录不能和源码目录同级——这点很多人在./configure阶段卡住
常见编译失败的底层原因
装完 build-essential 还编译不过,别急着重装,先看这几个点:
-
gcc main.c没报错但运行时段错误?很可能是没加-o,生成了默认的a.out,你却去执行了别的文件名 - 用
gcc -c main.c得到main.o后,忘记用gcc main.o -o main链接,直接执行./main.o——这会失败,因为.o不是可执行格式 - 在 WSL 或某些最小化 Ubuntu 镜像中,
/usr/include下可能缺stdio.h等头文件,本质是libc6-dev没装上,而build-essential本该自动带它——此时手动补装:sudo apt install libc6-dev
真正麻烦的从来不是“装不上”,而是“以为装上了,其实缺关键依赖”。每次编译失败,先跑一遍 gcc -v 看完整路径和配置,比反复重装快得多。











