Visual C ++ 2008不能包含自己的静态库

时间:2013-07-26 01:05:08

标签: visual-c++ static-linking dynamic-linking

我有两个项目:静态库 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环境中没有问题。

1 个答案:

答案 0 :(得分:2)

bar.dll项目编译为C,或者包含extern "C" {...}下的foo.lib标题。基本上,一个项目将函数导出为具有C ++链接,而另一个项目尝试使用C链接导入它。

相关问题