直接原因是系统未安装g++编译器,因Swoole为C++编写,configure阶段首先调用g++进行预处理检查;CentOS默认仅含gcc不含g++,Cygwin需手动勾选gcc-g++包,Debian/Ubuntu执行sudo apt-get install g++,CentOS执行sudo yum install gcc-c++,装后验证g++ --version。

直接原因是系统里压根没装 g++,不是 Swoole 本身的问题,也不是 PHP 配置错了。
为什么 configure 阶段就报 “c++ compiler not found”
Swoole 是 C++ 写的扩展,./configure 脚本第一件事就是调用 g++ 做预处理和基础检查。它不关心你有没有 PHP、有没有 phpize,只认 g++ 是否在 PATH 里且能执行。
- 常见错误现象:
checking how to run the C++ preprocessor /lib/cpp configure: error: C++ preprocessor "/lib/cpp" fails sanity check - 典型触发场景:CentOS 7 默认只装
gcc(C 编译器),不带g++;Cygwin 安装时漏选 C++ 工具包;Docker 镜像精简版直接没装编译器 - 注意:
gcc --version成功 ≠g++ --version成功 —— 这俩是独立包
Linux 下快速验证和补装 g++
先确认缺不缺,再精准安装,别盲目重装整个工具链。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
- 运行
g++ --version,如果报command not found,就是真没装 - Debian/Ubuntu:
sudo apt-get install g++(不用装build-essential全套,除非你还要编其他东西) - CentOS/RHEL:
sudo yum install gcc-c++或sudo dnf install gcc-c++(gcc-c++是独立包,不是gcc的子功能) - 装完立刻验证:
which g++应该输出路径,比如/usr/bin/g++
Windows(Cygwin/MSYS2)和 Docker 的特殊处理
这些环境的“没编译器”往往不是真的没装,而是路径或上下文不对。
立即学习“C++免费学习笔记(深入)”;
- Cygwin:必须在安装器里手动勾选
gcc-g++包(名称含g++),仅重装 Cygwin 不勾选无效;装完后重启终端再试 - MSYS2:打开
MSYS2 MinGW 64-bit终端(不是 MSYS2 UCRT 或 CLANG64),运行pacman -S mingw-w64-x86_64-gcc,它会自动带g++ - Docker:Alpine 镜像用
apk add g++;Debian/Ubuntu 基础镜像加RUN apt-get update && apt-get install -y g++;别信“PHP 官方镜像自带编译器”,它默认不带
最容易被忽略的一点:某些 CI 环境或容器启动脚本里,PATH 被重置过,或者用了非交互式 shell,导致 g++ 在 PATH 里也找不到。这时候得显式指定:CC=gcc CXX=g++ phpize && ./configure。


















