Swoole 6.2.2 扩展正在为 PHP 8.3 编译的过程
参考资料
Swoole 6.2.2 扩展正在为 PHP 8.3 编译的过程
这份日志显示的是 Swoole 6.2.2 扩展正在为 PHP 8.3 编译的过程,目前看起来编译在正常推进,没有出现错误。下面帮你解读一下关键信息:
编译环境
PHP 版本:8.3(
/www/server/php/83/include/php,看起来是宝塔面板的路径)Swoole 版本:6.2.2(源码在
/root/swoole-6.2.2)编译器:
g++,使用-std=c++14PHP 扩展模式:
-DENABLE_PHP_SWOOLE -DZEND_COMPILE_DL_EXT=1,即编译为 PHP 动态扩展
日志在做什么
这是 make 编译阶段,正在逐个编译 Swoole 的 C++ 源文件。日志中每条命令的模式是:
/bin/sh libtool --mode=compile g++ ...— 通过 libtool 调用 g++ 编译单个.cc文件紧接着
g++ ... -fPIC -DPIC -o .libs/xxx.o— 生成位置无关代码(PIC),用于最终链接成共享库
已经编译的模块包括:
| 模块 | 文件 |
|---|---|
| server | worker, reactor_thread, static_handler, reactor_process, thread, base |
| wrapper | event, timer, http |
| os | file, timer, unix_socket, signal, sendfile, pipe, wait, process_pool, msg_queue, async_thread, base |
| core | buffer, base64, misc, timer, string, heap, log, error, crc32, channel, base |
| coroutine | system, file, file_lock, iouring, uring_socket, thread_context, socket, context, channel, base, hook |
| reactor | kqueue, poll, base, epoll |
| network | stream(当前正在编译) |
需要注意的点
日志被截断了:最后一行是
network/stream.cc的编译,还没结束。你需要等它跑完,看最后是否出现Error或warning导致的失败。如果要判断是否成功,编译完成后应该会看到:
链接阶段生成
modules/swoole.so最后有
Build complete或类似的成功提示若失败,会出现
make: *** [xxx] Error 1编译时间较长属正常,Swoole 有大量 C++ 源文件,逐个编译会花几分钟到十几分钟。
潜在风险:
PHP 8.3 与 Swoole 6.2.2 的兼容性——Swoole 6.x 支持 PHP 8.x,但建议确认你用的 Swoole 版本明确支持 PHP 8.3。
如果中途报错,常见原因是 PHP 头文件路径不对、缺少依赖(如
libssl、libcurl)或权限问题。
如果你把日志的最后几十行(尤其是出现 Error、warning 或结束提示的部分)发出来,我可以帮你判断这次编译到底成功没有,以及是否有需要处理的问题。
时间:2026-10-02 09:46:06
来源:https://fresns.ciilii.com/
