我需要您对一个令我非常困惑的项目提供建议。
想象一下我正在编译一个二进制文件,该文件必须与two第三方库链接,我们将它们称为libA.so和libB.so。问题取决于以下事实:这两个库已使用不同版本的libcrypto进行编译。
在我的系统中,我同时拥有两个libcrypto,但是我可以同时使用它吗?有没有办法说libA.so使用/path/to/libA/needed/libcrypto.so?
非常感谢!
通常,您不能加载2个版本的库。假设有一个函数encrypt()
在两个版本中执行不同的功能(也许有一个旧的越野车版本和一个较新的固定版本)。将使用哪个encrypt()
?您可以使用LD_LIBRARY_PATH之类的内容在搜索路径的开头添加一些目录,以帮助选择您要加载的哪个版本的libcrypto
。例如LD_LIBRARY_PATH=/path/to/libA/needed ./myprog