PHP Warning:  PHP Startup: Unable to load dynamic library 'xxx.so'

9 篇文章 0 订阅

今天执行 php -dextension=vld.so -dvld.active=1 -dvld.verbosity=0 -dvld.dump_paths=0 CConst.php 时,遇到一个错误:
PHP Warning:  PHP Startup: Unable to load dynamic library 'vld.so' (tried: /usr/lib64/php/modules/vld.so (/usr/lib64/php/modules/vld.so: undefined symbol: dumpexceptiontable), /usr/lib64/php/modules/vld.so.so (/usr/lib64/php/modules/vld.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

经过查看,发现vld.so 确实在/usr/lib64/php/modules路径下,而且是刚编译好的,应该没有问题.但是却提示一个奇怪的函数名dumpexceptiontable不存在. dumpexceptiontable 这个函数确实是修改过的一个函数的名字,后来又改了名字. 编译通过之后,替换原来的so文件,就报了这个错误. 

后来在代码中还真找到了dumpexceptiontable 的调用的地方,但是,由于定义的地方修改了函数名字,这个地方应该编译报错才对? 为什么编译却通过了,而且so文件也生成了呢? 百思不得其解.

不过,找到了问题的根源,把函数名字dumpexceptiontable替换为新改的名字,一切恢复正常了.

如果你也遇到了可以找到so文件, 某个函数找不到的情况, 也可以考虑一下,可能是这个原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值