' rpath的'不适用于某些Linux系统。

时间:2015-05-28 02:53:49

标签: php linux

我为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'是空的。

我使用谷歌搜索了很多东西,但我不知道为什么,而且我不知道如何修复它。

有人知道,问题是什么?

1 个答案:

答案 0 :(得分:0)

" 6.0.10"相当古老。也许客户系统的libstdc ++具有相同的soname但后来的版本。

通常,您可以使用不同的 soname创建共享库扩展,以避免命名冲突。