Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VisualC+;中将win32.lib与x64项目一起使用+; 我有一个C++库(下载)。在库中,有一些包含代码的“.h”头文件“.cc”文件和两个包含在“win32”文件夹中的静态“.lib”。我在Visual Studio 2012 C++中只做了一个X64项目。_C++_Opencv_Visual Studio 2012_Lnk2019 - Fatal编程技术网

在VisualC+;中将win32.lib与x64项目一起使用+; 我有一个C++库(下载)。在库中,有一些包含代码的“.h”头文件“.cc”文件和两个包含在“win32”文件夹中的静态“.lib”。我在Visual Studio 2012 C++中只做了一个X64项目。

在VisualC+;中将win32.lib与x64项目一起使用+; 我有一个C++库(下载)。在库中,有一些包含代码的“.h”头文件“.cc”文件和两个包含在“win32”文件夹中的静态“.lib”。我在Visual Studio 2012 C++中只做了一个X64项目。,c++,opencv,visual-studio-2012,lnk2019,C++,Opencv,Visual Studio 2012,Lnk2019,为了使用库,我在属性页的“Additional Include Directory”中指定了.h文件的路径。在“附加库目录”中,我指定了包含两个“.lib”文件的文件夹的路径。在“附加依赖项”中,我列出了可以在“附加库目录”中找到的所有“.lib”文件的名称。在“调试”模式下,如果可用,我将使用库的调试版本 在代码中,我添加了一个#include,表示我想使用该库。我也使用其他库,但它们不会导致错误 现在,我有一个 "LNK2019 unresolved external symbol "pub

为了使用库,我在属性页的“Additional Include Directory”中指定了.h文件的路径。在“附加库目录”中,我指定了包含两个“.lib”文件的文件夹的路径。在“附加依赖项”中,我列出了可以在“附加库目录”中找到的所有“.lib”文件的名称。在“调试”模式下,如果可用,我将使用库的调试版本

在代码中,我添加了一个#include,表示我想使用该库。我也使用其他库,但它们不会导致错误

现在,我有一个

"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 ==========

不能在同一进程中使用32位和64位代码

链接器应该告诉您是否由于不兼容的体系结构而跳过您指示它使用的输入文件。读取所有链接器输出,而不仅仅是错误。

使用

dumpbin win32.lib /headers
以machine开头的行将告诉您它所期望的体系结构

在文件头值的末尾,在可选头值之前,它将告诉您是需要32位还是64位


可能是lib是64位的,但IA64而不是X64。这仍然是不兼容的。

hmmm我在Visual Studio的命令窗口中键入了它,但没有找到命令“dumpbin”或“dumpbin”。我用MyLib.lib替换了win32.lib,但它也不起作用……它应该在VC\bin中。快速版本有dumpbin,所以我希望您使用的任何版本都有它。您是从visual studio还是从windows使用cmd提示符?如果你在windows上使用它,你需要先运行VC\bin\vcvars32.bat。好的,经过一些修改后,我成功地启动了dumpbin。控制台上提示的文本太多,因此我无法查看文件头值。无论如何,谢谢,我将尝试使其工作使用dumpbin win32.lib/headers>win32.log,然后在编辑器中查看win32.log