gpt4 book ai didi

c++ - 静态和动态库链接

转载 作者:搜寻专家 更新时间:2023-10-31 01:24:03 24 4
gpt4 key购买 nike

在C++中,静态库A链接到动态库B和C中。如果类Foo在A中使用,在B中定义,如果C不使用Foo会链接吗?

我认为答案是肯定的,但我现在遇到了 xlc_r7 的问题,其中库 C 说 Foo 是一个 undefined symbol ,就 C 而言,这是一个 undefined symbol 。我的问题是库 C 没有使用引用它的类。此链接在 Win32 (VC6) 和 OpenVMS 中。

这是链接器差异还是 PBCAK?

新信息:

  1. B 依赖于 C,但反之则不然。

  2. 我没有使用/OPT:REF 在 Windows 上进行链接,它的链接没有问题。

最佳答案

静态链接时,两个模块合二为一。所以当你编译 C 并将 A 链接到其中时,就好像你将 A 的所有源代码复制到 C 的源代码中,然后编译合并的源代码。所以 C.dll 包含 A,它通过 Foo 依赖于 B。您需要将 C 链接到 B 的链接库以满足该依赖性。

请注意,根据您的信息,这将在 B 和 C 之间创建循环依赖。

关于c++ - 静态和动态库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/168979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com