当A引用B和B ref C时,理解g ++链接器,但找不到C.

时间:2015-05-09 01:07:27

标签: linker ld

我有一个C ++程序 P ,它链接到动态库 D ,后者又链接到另一个动态库 Z

P 直接调用库 Z 的任何方法/ var / class。

我从源代码编译 D ,一切顺利。

当我尝试编译 P 时,链接器抱怨没有在 Z 中找到方法。我将此链接修复为 Z

我希望,因为 P 不会直接调用来自 Z 的任何方法,所以链接器会因为 D

我的问题是:

  • 这种特定情况的可能原因是什么,即被迫链接到 Z
  • 我的解决方案是黑客还是一个好的解决方案?

请注意,我打算更深入地了解ld链接器的功能。

编辑:这个问题属于Linux环境。这里提到的动态库是共享对象。

0 个答案:

没有答案