自己编写了一个扩展,引用了一个第三方的 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 扩展的群 或者 论坛,我能更方便的获取信息
感谢~~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.