我正在构建一个共享库,该库从应用程序中加载(我无法控制该应用程序)。我的库使用其他共享库,这些共享库又使用其他共享库,这很复杂但并不罕见。
问题在于主应用程序具有链中更深处库中存在的函数,更具体地说,它是openLDAP
,而openLDAP
又使用openSSL
函数:
Main app->My library->openLDAP libraries->openSSL libraries
我的猜测是主要的应用程序通过静态链接或简单的源代码复制来实现
openSSL
。我的问题是:我可以控制openLDAP
从我的库中使用哪些函数,还是必须重新编译具有静态链接到openSSL
的openLDAP
?由于openSSL
由于安全问题经常更新,如果我没有必要,我不想静态复制它。而且openLDAP
是大多数发行版包的一部分,为什么要重新分发专有的openLDAP
副本...