链接器错误lnk2019追溯到__ stdcall,我认为我得到了正确的lib-我该怎么办来解决这个问题?
题
我尝试将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中添加另一个问题,询问有什么区别。
不隶属于 StackOverflow