直接原因是系统未安装gcc编译器,需先验证gcc --version、which gcc等命令确认缺失,再按发行版安装development tools或build-essential及对应devel包,最后验证工具链并重试configure。

直接原因是系统没装 GCC 编译器,不是 Nginx 本身的问题,而是编译环境不完整。只要装好 GCC 和配套工具链,configure 就能正常跑起来。
确认 GCC 是否真的缺失
别猜,先验证:
- 运行 gcc --version —— 如果提示 command not found,说明 GCC 没装
- 运行 which gcc —— 看有没有输出路径
- RHEL/CentOS 系:用 rpm -q gcc 查是否已安装包
- Ubuntu/Debian 系:用 dpkg -l | grep gcc 检查
按发行版装对的编译工具包
最小化安装的系统(比如 CentOS minimal、Ubuntu server core)默认不含任何编译器,必须手动补全:
- CentOS/RHEL 7–8:yum groupinstall "Development Tools",再补 yum install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
- CentOS/RHEL 9+ / Rocky / AlmaLinux:dnf groupinstall "Development Tools",注意 pcre 改成 pcre2-devel
- Ubuntu/Debian:apt update && apt install build-essential libpcre3-dev zlib1g-dev libssl-dev
验证环境并重试 configure
装完别急着进 nginx 目录,先确认基础工具就位:
- 执行 gcc --version && make --version && pkg-config --version,三者都应有正常输出
- 回到 nginx 源码目录,清理上次失败残留:make clean(如果之前 run 过 make)
- 重新运行 ./configure --prefix=/usr/local/nginx [你的参数]
- 如果还报某库找不到(比如 PCRE 或 OpenSSL),就按错误提示补装对应 -dev 或 -devel 包
几个容易忽略的点
不是所有情况都要从零装 GCC:
- 有些系统自带 cc 但不是 GCC,比如 clang,configure 可能不认,建议统一用 GCC
- 权限受限时(如无 root),可用 conda 或 spack 装用户级工具链,但生产环境不推荐
- Docker 构建中,务必把 build-essential 或 Development Tools 放在安装 nginx 前











