【问题标题】:Debugging Settings for openCV project on VisualStudio 2013 [x64 machine]VisualStudio 2013 [x64 机器] 上 openCV 项目的调试设置
【发布时间】:2015-02-07 18:30:09
【问题描述】:

我的电脑是 x64bit,所以在设置库和头文件时,我会通过 opencv/build/x64/.. 目录

它会说存在构建错误并在终端中输出以下内容

错误 1 ​​错误 LNK1112:模块机器类型 'x64' 与目标机器类型 'X86' 冲突 C:\Users\koda\Desktop\FacialDetection\ConsoleApplication2\ConsoleApplication2\opencv_highgui2410.lib(opencv_highgui2410.dll) ConsoleApplication2

我因此将所有设置更改为 opencv/build/x86/.. 并没有在代码中出现错误

尝试调试时,出现一个窗口,提示无法启动程序,因为计算机中缺少“opencv_highgui2410.dll”。我保证在导入在 PropertySheet_Release 和 _Debug > Linker>Input

中导入的 .lib 文件时我正在导入此文件

在 IDE 的终端中,我收到以下错误消息“ConsoleApplication2.exe”(Win32):已加载“C:\Windows\SysWOW64\ntdll.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication2.exe”(Win32):已加载“C:\Windows\SysWOW64\kernel32.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication2.exe”(Win32):已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法找到或打开 PDB 文件。程序“[7084] ConsoleApplication2.exe”已退出,代码为 -1073741515 (0xc0000135)“未找到依赖的 dll”。

但是在目录中我找到了那些文件..

我应该怎么做才能让代码正常工作?

提前感谢您的帮助:)

【问题讨论】:

  • 我应该怎么做才能让代码正常工作? 确保你有正确的库和二进制文件,用于你想要定位的编译器和配置你的申请。不要混合调试和发布。不要混合使用 32 位和 64 位。不要使用其他版本的 Visual Studio 中的库或 dll。请记住,Visual Studio 2013 是 vc12(不是 vc13)。
  • 感谢您的回复。我不知道visual studio 13是vc 12!不混合调试和发布是什么意思?在设置第一个和后者时,我总是放置相同的文件。有错吗?
  • 不混合调试和发布是什么意思? 不要将调试库/dll用于发布应用程序或发布库用于调试应用程序.在 opencv 中,调试库和 dll 在 .lib 和 .dll 之前会有一个 d。不会发布。

标签: c++ debugging opencv visual-studio-2013 settings


【解决方案1】:

您需要将 opencv\build\x86\vc12\bin 中的“opencv_highgui2410d.dll”复制到您的 Debug 文件夹,并将“opencv_highgui2410.dll”复制到您的 Release文件夹(可执行文件所在的位置)。

您可能还需要使用“opencv_core2410.dll”和“opencv_imgproc2410.dll”来执行此操作。

顺便说一句,您不能从链接器导入 DLL,这是 DLL 的主要目标(与静态 LIB 相比,它是“动态的”)。

【讨论】:

  • 感谢您的回复,我应该使用 ../x86 还是 ../x64 目录?我问这个是因为在使用 x64 dir 设置时出现错误 LNK1112 机器类型 x64 与机器类型 x86 冲突...我真的不明白为什么会出现此错误,因为我确定我的计算机是 x64
  • 在您的情况下,我建议您使用 /x86 目录。默认情况下,Visual Studio 面向 32 位应用程序(尽管您的计算机支持 64 位应用程序)。通常,为简单起见,如果 32 位应用程序不是商业产品或真正的大项目,则应始终以它为目标。
  • 我也没有看到 relase 文件夹。在项目目录中,我看到的唯一文件夹是 degub。
  • 没关系。那是因为您从未在 Release 中编译过您的解决方案。无论如何,你现在应该坚持调试。
猜你喜欢
  • 1970-01-01
  • 2015-03-19
  • 2015-06-26
  • 2011-07-26
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
相关资源
最近更新 更多