必须安装build-essential元包,它自动包含gcc、g++、make、libc6-dev等完整编译工具链,单独安装gcc会导致configure失败或“c compiler cannot create executables”错误。

直接装对的包就行,别只装 gcc 或只装 make —— 它们从来不是孤立存在的,缺一个就整个编译链断掉。
Debian/Ubuntu 上必须装 build-essential,不是只装 gcc
很多人执行 sudo apt install gcc 后发现 make 还是报错,或者 ./configure 提示 “C compiler cannot create executables”。这是因为:gcc 单独安装不带 make、g++、libc6-dev 和标准头文件。
- 正确做法:先
sudo apt update,再sudo apt install build-essential - 这个元包会自动拉入
gcc、g++、make、dpkg-dev和libc6-dev - 验证:运行
gcc --version、make --version、dpkg -l | grep build-essential都应有输出 - 如果已装过
gcc但没装build-essential,补装不会冲突,但建议sudo apt install --reinstall build-essential确保完整
CentOS/RHEL 7–8 要用 yum groupinstall "Development Tools"
yum install gcc make 看似合理,但实际会漏掉 autoconf、automake、libtool、binutils 等 configure 阶段必需的工具。很多项目一跑 ./configure 就失败,错误里常出现 “no acceptable C compiler found” 或 “autoreconf: command not found”,根源就在这儿。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 执行
sudo yum groupinstall "Development Tools"(RHEL/CentOS 7)或sudo dnf groupinstall "@development-tools"(RHEL/CentOS 8+) - 该命令会一次性装齐 GCC、G++、Make、Autoconf、Automake、Libtool、Patch、Bison、Flex 等整套工具链
- 别跳过
devel包:后续编译 Nginx、Python 扩展等还会报 “openssl-devel not found”,得额外yum install openssl-devel zlib-devel pcre-devel - 检查是否生效:运行
which gcc、which make、which autoreconf,三者都应返回路径
PATH 没包含 /usr/bin 时,gcc 和 make 仍会 “找不到”
即使软件包已装好,whereis gcc 显示 /usr/bin/gcc,但终端敲 gcc --version 报 “command not found”,大概率是当前用户的 PATH 里没包含 /usr/bin。
- 检查:运行
echo $PATH,确认输出里有/usr/bin(不是/bin或/usr/local/bin单独存在就够) - 临时修复:执行
export PATH="/usr/bin:$PATH" - 永久修复:把
export PATH="/usr/bin:$PATH"加到~/.bashrc或/etc/profile(后者影响所有用户) - 注意:某些最小化系统(如 Docker Alpine 或精简版 CentOS)默认
PATH极短,甚至不含/usr/bin,这是设计使然,不是 bug
离线环境不能只拷二进制,得按依赖树装 RPM/DEB 包
在没网络的服务器上,有人直接从另一台机器拷 /usr/bin/gcc 过来,结果运行时报 “cannot open shared object file: libmpc.so.3” —— 因为 gcc 动态链接了十多个库,缺一个就起不来。
- 正确做法:用
rpm -qpR gcc-*.rpm(RPM)或dpkg -I build-essential_*.deb(DEB)查出全部依赖项 - 把依赖包(包括
glibc-devel、mpfr、mpc、isl等)全拷过去,再用rpm -ivh *.rpm或dpkg -i *.deb顺序安装 - 更稳妥:用
yum install --downloadonly --downloaddir=./deps build-essential(需提前配好本地源)把整套依赖下载下来 - 别信“绿色版 gcc”——GNU 工具链没有绿色版,硬凑只会让
configure阶段各种检测失败
最常被忽略的一点:装完工具后,别急着跑 ./configure。先看项目文档里写的最低 GCC 版本要求,老项目(比如 OpenSSL 1.0.x)在 GCC 12+ 下可能编译不过,新项目(如 Rust 工具链)又可能需要 GCC 11+;版本错位带来的报错,和“没装 gcc”看起来一模一样。










