我有一个C++库(下载的这里)。在库中,有一些".h“头文件、包含代码的".cc”文件和包含在"win32“文件夹中的两个静态".lib”。我只是在Visual 2012 C++中做一个C++项目。
为了使用这个库,我在属性页面的“附加包含目录”中指定了.h文件的路径。在“附加库目录”中,我指定了包含两个".lib“文件的文件夹的路径。在“附加依赖项”中,我将所有".lib“文件的名称放在”附加库目录“中。在“调试”模式下,如果可用,我将使用库的调试版本。
在代码中,我添加了一个#include < brisk.h>,以表示我想使用这个库。我也使用其他库,但它们不会导致错误。
现在,我有一个
"LNK2019 unresolved external symbol "public: __cdecl cv:: ...etc" 编译时出错。我想知道,这是否是由一些".lib“可能是用win32而不是x64编译的事实造成的。这可能是个错误吗?
如果很明显我做错了什么,请给我小费。我咨询过这个问题,但我不太确定.
编辑:
下面是编译器的输出:
1>------ Build started: Project: BRISK_opencv2, Configuration: Debug x64 ------
1> BRISK_opencv2.cpp
1>BRISK_opencv2.obj : error LNK2019: unresolved external symbol "public: __cdecl cv::BriskDescriptorExtractor::BriskDescriptorExtractor(bool,bool,float)" (??0BriskDescriptorExtractor@cv@@QEAA@_N0M@Z) referenced in function main
1>BRISK_opencv2.obj : error LNK2019: unresolved external symbol "public: __cdecl cv::BriskFeatureDetector::BriskFeatureDetector(int,int)" (??0BriskFeatureDetector@cv@@QEAA@HH@Z) referenced in function main
1>C:\...\x64\Debug\BRISK_opencv2.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========发布于 2015-03-31 18:34:58
您不能在同一进程中使用32位和64位代码。
链接器应该告诉您,它是否正在跳过您指示它使用的输入文件,因为它的架构不兼容。读取所有链接器输出,而不仅仅是错误。
发布于 2015-03-31 18:38:38
使用
dumpbin win32.lib /headers以机器开头的行将告诉您它期望什么样的体系结构。
在文件头值的末尾,在可选的头值之前,它会告诉您它是期望32位还是64位。
它可能是64位的库,但是IA64而不是X64。这仍然是不相容的。
https://stackoverflow.com/questions/29375882
复制相似问题