首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php扩展源码中加载自己的libxxx.so?

如何在php扩展源码中加载自己的libxxx.so?
EN

Stack Overflow用户
提问于 2018-06-12 13:38:27
回答 1查看 326关注 0票数 0

我得到了一个libxxx.so文件,我无法查看它的源代码,我可以用下面的命令编译我的c文件:

代码语言:javascript
运行
复制
gcc -ldl libxxx.so my.c -a a.out

a.out在命令行中工作得很好。但在我将其封装到PHP扩展中后,PHP显示了如下消息:

代码语言:javascript
运行
复制
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/myextension.so' - /usr/lib64/php/modules/myextension.so: undefined symbol: xxxfunction in Unknown on line 0

xxxfunction函数是由libxxx.so导出的函数。

我是C新手,我认为问题出在编译我的PHP扩展的方式上,我在谷歌上搜索了一下,但没有找到答案。

我想知道在gcc中是否有像-ldl这样的选项,这样我就可以指定在我的PHP扩展中使用libxxx.so。

我通过下一步编译了我的扩展:

代码语言:javascript
运行
复制
cd myextension/
phpize
./configure
make
make install

我已将libxxx.so文件移动到/usr/local/lib

我的/etc/ld.so.conf:

代码语言:javascript
运行
复制
include ld.so.conf.d/*.conf
/usr/local/lib

我已经运行了lddconfig

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50809909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档