自己编写了一个扩展,引用了一个第三方的 c++ 的库,编译的时候一切正常,加载到 PHP 后运行报错
PHP Warning: PHP Startup: Unable to load dynamic library '/Users/hooklife/Projects/php-build/7.3/lib/php/extensions/no-debug-non-zts-20180731/r3_route.so' (tried: /Users/hooklife/Projects/php-build/7.3/lib/php/extensions/no-debug-non-zts-20180731/r3_route.so (dlopen(/Users/hooklife/Projects/php-build/7.3/lib/php/extensions/no-debug-non-zts-20180731/r3_route.so, 9): Symbol not found: _pcre_free
Referenced from: /Users/hooklife/Projects/php-build/7.3/lib/php/extensions/no-debug-non-zts-20180731/r3_route.so
Expected in: flat namespace
这是我的 config.m4
AC_PROG_CC
AC_PROG_CC_STDC
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([gettimeofday memset strchr strdup strndup strstr pcre])
PHP_ARG_ENABLE(r3_route, whether to enable r3_route support,
[ --enable-r3_route Enable r3_route support], no)
if test "$PHP_R3_ROUTE" != "no"; then
r3_sources="
r3/src/str.c
r3/src/token.c
r3/src/slug.c
r3/src/edge.c
r3/src/node.c
r3/src/list.c
r3/src/match_entry.c"
AC_DEFINE(HAVE_PCRE, 1, [ ])
PHP_ADD_INCLUDE(/usr/local/include/pcre)
PHP_ADD_LIBRARY_WITH_PATH(z,/usr/local/lib/pcre, R3_ROUTE_SHARED_LIBADD)
PHP_ADD_INCLUDE("$srcdir/r3/include")
PHP_NEW_EXTENSION(r3_route, $r3_sources r3_route.c, $ext_shared)
PHP_SUBST(R3_ROUTE_SHARED_LIBADD)
fi
查找了很长时间没找到相关内容,请求大家帮帮忙。 随便问下有没有什么专门的 PHP 扩展的群 或者 论坛,我能更方便的获取信息
感谢~~
1
m939594960 OP 没人么?
|
2
dilu 2019-06-09 13:52:39 +08:00 via Android
看起里你是用了 pcre 但是实际没有装
|
3
m939594960 OP @dilu 我引用的 C++ 的库确实使用了 pcre,但是我本地也安装了 pcre,在 config.m4 中也加了这个库,但是还是报这个错误
|
4
iceheart 2019-06-09 15:18:46 +08:00 via Android
ldd 看看
|