微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP自定义C扩展与外部共享库

我想开发一个依赖外部共享库的扩展。 我目前的问题是,我无法将这个共享库链接到我的扩展。

我的开发环境是Fedora Linux x64 + PHP 5.4。 这个外部共享库是一个专有的,我只是有它的头(.h)和.so文件(32和64位)。

该项目的当前config.m4文件如下所示:

PHP_ARG_WITH(projectname,[Whether to enable ProjectName support],[ --with-projectname enable ProjectName support]) if test "$PHP_PROJECTNAME" != "no"; then PHP_ADD_LIBRARY_WITH_PATH(externallib,lib64,PROJECTNAME_SHARED_LIBADD) AC_DEFINE(HAVE_PROJECTNAME,1,[Whether you have ProjectName]) PHP_NEW_EXTENSION(projectname,projectname.c,$ext_shared) fi

这里的问题是我每次运行./configure --with-projectname生成的makefile没有任何对库的引用,加上编译后的.so文件失败(显然)。

重新启动2.1.1.0失败

基于Qt的应用程序二进制兼容性问题,由于glibc版本

让Asterisk自动打电话给我和其他人参加一个会议

尾部文件,直到进程退出

如何找出提供给free()的地址是否是无效地址?

如果我有办法根据体系结构确定正确的lib目录,那也是有用的。

换行从Linux到Windows的新行字符丢失

将独立的WiFi芯片(TI CC3100)集成到Linux中

多个主机名和多个权限?

sorting范围Linux

与Valgrind一起运行时,malloc返回null

您已经包含了该库,但看起来您错过了实际的链接选项。 我没有这么长时间,但是我觉得下面这样的东西应该可以工作。

EXTERNAL_LIB="blahLibName" LIB_LINK_CMD="-L/usr/local/lib -l$EXTERNAL_LIB" PHP_ADD_LIBRARY_WITH_PATH(externallib,PROJECTNAME_SHARED_LIBADD) PHP_EVAL_LIBLINE($LIB_LINK_CMD,PROJECTNAME_SHARED_LIBADD)

这里的语法可能并不正确,但是您肯定需要PHP_EVAL_LIBLINE。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐