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

问题描述 投票:0回答:1

我需要您对一个令我非常困惑的项目提供建议。

想象一下我正在编译一个二进制文件,该文件必须与two第三方库链接,我们将它们称为libA.so和libB.so。问题取决于以下事实:这两个库已使用不同版本的libcrypto进行编译。

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

非常感谢!

dynamic-linking shared-libraries
1个回答
0
投票

通常,您不能加载2个版本的库。假设有一个函数encrypt()在两个版本中执行不同的功能(也许有一个旧的越野车版本和一个较新的固定版本)。将使用哪个encrypt()?您可以使用LD_LIBRARY_PATH之类的内容在搜索路径的开头添加一些目录,以帮助选择您要加载的哪个版本的libcrypto。例如LD_LIBRARY_PATH=/path/to/libA/needed ./myprog

© www.soinside.com 2019 - 2024. All rights reserved.