C++未解决的符号

问题描述:

我在链接中遇到未解决的符号错误。即时通讯链接到一个外部库,并且是的,我已正确设置的结构,但是,当在调试它输出下面的错误在外部库中的每个类:C++未解决的符号

error LNK2001: unresolved external symbol __CAP_EXIT_Function 

该凸出使用相同的运行时DLL作为外部库和链接反对lib的调试版本。

任何线索,以何去何从?

BTW,使用VS2008

感谢

+0

这是什么LIB? – KeatsPeeks 2009-11-11 16:33:11

好像你正在使用的/callcap switch但不能定义回调函数的IM。请参阅前面的链接并实现回调函数。

对于其他库链接错误。检查以确保您在链接器属性的附加包含部分中指定.lib文件?

另外,如果您在与项目相同的解决方案中有一个vcproj文件,您可以右键单击您的项目并设置其他库的依赖项。这样你就不需要像上面提到的那样指定一个额外的库。

+0

叶,我指定它在包括 – Jac 2009-11-11 16:30:56

+0

更新的答案与我认为你的问题是。 – 2009-11-11 16:41:03

+0

雅我认为这是因为,库proj被设置为在函数调用中使用分析,我删除了,看看它是否是问题,但仍然是相同的错误 – Jac 2009-11-11 16:51:22

您是否包含可能需要的所有头文件?您仍然需要添加

#include "MyDll.h" 

即使在添加对dll的引用并将它所在的目录添加到include目录路径之后。 然后你可以像这样使用dll中的函数。

MyDll::MyFunctions::Function(); 
+0

是的,库标题包含在预编译头文件中 – Jac 2009-11-11 16:49:56

+0

标题问题会在编译时引发错误,而不是链接时间。 – 2009-11-11 17:56:06

+0

@比利好点。 – ChadNC 2009-11-11 18:17:25

该库是一个C库?在那种情况下,你需要extern“C”作为标题中的函数,可能缺少这个函数?

例如

extern "C" 
{ 
    void foo(); 
    ... 
} 

extern "C" void foo(); 
+0

不是,它的C++,但库的主要接口是函数调用 – Jac 2009-11-11 16:50:35