0

我有两个项目:一个静态库和一个静态链接到这个静态库的DLL 。让我们假设:

foo.lib (static library)
bar.dll (links against foo.lib)

foo.lib 具有以下功能:

fooFile(...);

我成功地构建了静态库,并且 dumpbin /symbols 告诉我该函数在那里(尽管有一些名称修饰)。尝试将其链接到 bar.dll 项目时,出现以下错误:

error LNK2019: unresolved external symbol _fooFile referenced in function _fooSomething

为什么会失败?相同的代码在 Linux 环境中运行没有问题。

4

1 回答 1

2

bar.dll 项目编译为 C,否则将 foo.lib 的头文件包含在extern "C" {...}. 本质上,一个项目将函数导出为具有 C++ 链接,而另一个项目尝试使用 C 链接导入它。

于 2013-07-26T01:23:02.070 回答