在 linux 中使用另一个共享库构建共享库

Posted

技术标签:

【中文标题】在 linux 中使用另一个共享库构建共享库【英文标题】:Building shared library using another shared library in linux 【发布时间】:2014-10-16 12:30:31 【问题描述】:

我有一个使用共享库 B 的共享库 A,以及一个依赖于 A 的应用程序 P。

我不想将 P 与 A 和 B 联系起来,而是将 P 与 A 联系起来,将 A 与 B 联系起来(并以某种方式将 B 与 P 隐藏起来)

我该怎么办?

共享库是使用 'g++ -shared...' 生成的

【问题讨论】:

【参考方案1】:

如果您不需要 B 成为独立的共享库 - 可以单独使用,请不要将其构建为共享库,而是使用符合 -fPIC 的代码构建静态库 - 然后将此静态库链接到共享库 A。

如果你也需要 B 的共享库,那么使用相同的对象来构建共享库。

【讨论】:

以上是关于在 linux 中使用另一个共享库构建共享库的主要内容,如果未能解决你的问题,请参考以下文章

cppcms - 共享库 - Linux

linux共享库支持多线程应用回调

Eclipse,构建共享库的最佳方式?

如何将共享库链接到Linux中的其他共享库?

在 Linux 上构建 Qt 共享库

当从属共享库包含符号时 ,Java JNI“符号查找错误”