有人可以帮我理解这个过程。
在 c++ 视觉工作室 2010 中
我有一个视觉工作室解决方案(让我们称之为 mysol)
我有一个作为静态库构建的项目(我们称之为 staticprj) staticprj 需要使用外部库(我们称之为 ext.lib)
在 staticprj 的源代码主体中,我使用#include extlib.h 包含外部库头文件并调用它的一些函数(让它们称为 extfunctions()),我还包括头文件位置的路径扩展库。
staticprj 编译好没有错误
mysol 还有另一个项目,它是一个动态库 (dynprj),它依赖于 staticprj。
在 dynprj 的源文件中也使用来自外部库的函数。
我在 dynprj 的源代码中包含了#include extlib.h。我已经包含头文件的路径,我已将 extlib.h 直接附加到 dynprj 我还将 ext.lib 添加到链接器输入(以及 ext.lib 所在的路径)。
我仍然收到一个 lnk2001 错误,指出未找到 extfunctions()。
如果我根本不使用 ext.lib,整个结构(mysol 解决方案)可以编译。
我的问题是链接过程是如何工作的,我能做些什么来纠正这个链接错误。
(请注意,在没有 ext.lib 的情况下,我的 staticprj 和 dynprj 链接很好。我的编译工作正常,我的代码工作正常。当我尝试将另一个 ext.lib 链接到 staticprj 和 dynprj 并使用时,我只会收到链接错误ext.lib 中的函数)
提前致谢。