2013-07-26 50 views
0

我有两个项目:一个静态库和一个DLL将静态链接到此静态库。让我们假设:Visual C++ 2008不能包含自己的静态库

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环境中没有问题。

回答

2

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

+0

我忘了Visual C++使用C++作为默认值:) – ivarec

相关问题