我为PHP Apache模块制作了PHP扩展。 我用gcc-4.9.2编译了它。 所以我在同一目录下用libstdc ++。so.6(libstdc ++。so.6.0.10)分发我的PHP扩展。 我用' RPATH = $ ORIGIN'编译了扩展名。
大多数linux系统都可以运行。
但是,某些系统(我的客户系统),扩展程序尝试加载/usr/lib64/libstdc++.so.6,并且无法加载扩展程序。
' ldd命令'结果很好,它正确找到了libstdc ++。so.6.0.10(不是/ usr / lib64 / libstdc ++。so.6)
' $ LD_LIBRARY_PATH'是空的。
我使用谷歌搜索了很多东西,但我不知道为什么,而且我不知道如何修复它。
有人知道,问题是什么?
答案 0 :(得分:0)
" 6.0.10"相当古老。也许客户系统的libstdc ++具有相同的soname
但后来的版本。
通常,您可以使用不同的 soname
创建共享库扩展,以避免命名冲突。