【发布时间】:2014-10-09 06:32:40
【问题描述】:
我正在构建一个从应用程序(我无法控制)加载的共享库。我的库使用其他共享库,而这些共享库又使用其他共享库,复杂但并不罕见。
问题在于主应用程序的函数存在于链中更靠后的一个库中,更具体地说,openLDAP 又使用 openSSL 函数:
Main app->My library->openLDAP libraries->openSSL libraries
我的猜测是,主应用程序正在通过静态链接或简单的源代码复制/粘贴来实现openSSL。
我的问题是:我可以控制 openLDAP 使用我的库中的哪些函数,还是必须重新编译 openLDAP 并与 openSSL 建立静态链接?
由于openSSL 因安全问题而经常更新,因此如果不需要,我不想要它的静态副本。以及为什么要重新分发 openLDAP 的专有副本,因为它是大多数分发包的一部分...
【问题讨论】:
-
我使用 Mozilla NSS 而不是 openSSL 构建了 openLDAP。这样我就不会做任何尴尬的事情并尝试解决别人的错误。
标签: c++ c linux shared-libraries