对同一可执行文件使用2个不同的共享库



我需要你对一个让我很困惑的项目的建议。

想象一下,我正在编译一个二进制文件,它必须与两个第三方库链接,我们称它们为libA.so和libB.so。这个问题依赖于这样一个事实,即这两个库是用不同版本的libcrypto编译的。

在我的系统中,我有两个libcrypto,但我可以同时使用吗?有没有办法说libA.so使用/path/to/libA/needed/libcrypto.so?

提前感谢!

通常情况下,不能加载两个版本的库。假设有一个函数encrypt()在两个版本中做不同的事情(可能有一个旧的bug版本和一个新的固定版本(。将使用哪个encrypt()?您可以使用LD_LIBRARY_PATH之类的东西在搜索路径的早期添加一些目录,以帮助选择要加载的libcrypto的单个版本。例如LD_LIBRARY_PATH=/path/to/libA/needed ./myprog

最新更新