Linux共享库依赖项解析

Linux共享库依赖项解析,linux,python-2.7,ubuntu,shared-libraries,Linux,Python 2.7,Ubuntu,Shared Libraries,情景: python --> python-openssl --> libssl.so.1.0.1 --> libcrypto.so.1.0.1 myapp.py --> myExt.so --> XXXlib.so --> libssl.so.0.9.8 --> libcrypto.so.0.9.8 通过ldd验证上述依赖关系 当我执行python myapp.py时 在Ubuntu 12.04.4 gcc 4.6.3上 程序以segfault

情景:

python   --> python-openssl --> libssl.so.1.0.1 --> libcrypto.so.1.0.1
myapp.py --> myExt.so  --> XXXlib.so --> libssl.so.0.9.8 --> libcrypto.so.0.9.8
通过ldd验证上述依赖关系

当我执行python myapp.py时

在Ubuntu 12.04.4 gcc 4.6.3上

程序以segfault结束,回溯显示libssl.so.0.9.8调用了libcrypto.so.1.0.1中的函数

在Ubuntu 14.04 gcc 4.8.x上

程序运行正常

到目前为止,我在Ubuntu 12.04上解决这个问题的方法是从源代码手动编译python,并强制它与openssl-0.9.8链接


为什么在Ubuntu 14.04上解析正确?而且,它是否适用于12.04?

通过在问题中添加python标记,您更有可能从遇到相同问题的人那里获得帮助。祝你好运。纯粹是运气。2.不要费心去想也许有一天会尝试一下。链接同一个库的两个不同版本是完全错误的,当您最不希望它出现时,它就会中断。3.使用未定期更新到最新openssl的产品是有问题的,请仔细检查您是否真的需要它。@Shelleter补充道,谢谢。@n.m.完全同意您的意见。我别无选择,只有XXXlib。对不起,但我认为n.m.在这方面做得很好。最好重新组合并找到合适的解决方案。