我有两个项目:静态库和 DLL ,它们将静态链接到此静态库。我们假设:
foo.lib (static library)
bar.dll (links against foo.lib)
foo.lib具有以下功能:
fooFile(...);
我成功构建了静态lib和dumpbin /符号告诉我该函数在那里(虽然有一些名称重整)。当尝试将其链接到bar.dll项目时,我收到以下错误:
error LNK2019: unresolved external symbol _fooFile referenced in function _fooSomething
为什么会失败?相同的代码在Linux环境中没有问题。
答案 0 :(得分:2)
bar.dll项目编译为C,或者包含extern "C" {...}
下的foo.lib标题。基本上,一个项目将函数导出为具有C ++链接,而另一个项目尝试使用C链接导入它。