链接器错误lnk2019追溯到__ stdcall,我认为我得到了正确的lib-我该怎么办来解决这个问题?

StackOverflow https://stackoverflow.com/questions/4459369

我尝试将Labcvi Projekt移植到MSVS 2010 C ++ Express。有这样的代码读:

if (InitCVIRTE == 0) return 0;

发生链接器错误发生:lnk2019“ _initcvirteex@12” - 所有相关标头都已经具有CPP语句:

#ifdef __cplusplus 
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif

我将错误追溯到这些片段,我为您组合了:

#define CVIFUNC __stdcall
int CVIFUNC InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);
#define InitCVIRTE InitCVIRTEEx

总结一下:

int __stdcall InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);

该调用应在cvirt.lib -wich中定义。

应该以不同的方式添加自由吗?我该如何验证这真的是正确的lib?错误是否意味着完全不同的东西?

有帮助吗?

解决方案

您需要告诉链接器要链接哪些库。搜索路径只会告诉链接器在哪里找到这些库。

IE:

Linker Libraries:
 - a.lib
 - b.lib

Linker Search Dirs:
 C:\project_a\lib
 C:\project_b\lib

链接器将在两个文件夹中搜索A.Lib和B.Lib,但不会链接任何尚未被告知的库。

其他提示

我以某种方式解决了它 - 我在项目中添加了cvirt.lib和cvisupp.lib direktly。错误现在消失了...

但是,我仍然不满意,因为我已经给项目提供了应该寻找库的道路。我将在stackoverflow中添加另一个问题,询问有什么区别。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top