【问题标题】:opencv2.4.4 visual studion 2012 Cannot find or open the PDB fileopencv2.4.4 Visual Studio 2012 找不到或打开PDB文件
【发布时间】:2013-04-25 02:39:40
【问题描述】:

我正在使用 opencv 库和 VS2012 运行程序。我使用的是windows 7 64位,所以我通过项目属性将配置管理器更改为x64。在我系统的环境变量中,我首先从命令提示符处创建了这些条目: setx -m OPENCV_DIR C:\OpenCV\build 并将其添加到系统路径:%OPENCV_DIR%\build\x64\vc11\bin

在 Visual Studio 的属性管理器中,我将以下文件夹链接添加到项目属性:

  1. C/C++下,额外的include目录,我加了:$(OPENCV_DIR)\include

  2. 在链接器下,附加库目录,我添加了; $(OPENCV_DIR)\x64\vc10\lib;

  3. 链接器,输入,附加依赖,我加了如下:

    opencv_core244d.lib opencv_imgproc244d.lib opencv_highgui244d.lib opencv_ml244d.lib opencv_video244d.lib opencv_features2d244d.lib opencv_calib3d244d.lib opencv_objdetect244d.lib opencv_contrib244d.lib opencv_legacy244d.lib opencv_flann244d.lib opencv_gpu244d.lib opencv_nonfree244d.lib opencv_photo244d.lib opencv_stitching244d.lib opencv_ts244d.lib opencv_videostab244d.lib

当我运行我的程序时,我遇到了这个错误

“ConsoleApplication0.exe”(Win32):已加载“D:\configuration\ConsoleApplication0\x64\Debug\ConsoleApplication0.exe”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\ntdll.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\kernel32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\KernelBase.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\opencv\build\x64\vc11\bin\opencv_core244d.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msvcp110d.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msvcr110d.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\opencv\build\x64\vc11\bin\opencv_imgproc244d.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication0.exe”(Win32):已加载“C:\opencv\build\x64\vc11\bin\opencv_highgui244d.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\user32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\gdi32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\lpk.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\usp10.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msvcrt.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\ole32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\rpcrt4.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\oleaut32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\advapi32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\sechost.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\comctl32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msvfw32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\winmm.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\shell32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\shlwapi.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\avifil32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msacm32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\avicap32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\version.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\opencv\build\x64\vc11\bin\opencv_objdetect244d.dll”。无法找到或打开 PDB 文件。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\imm32.dll”。已加载符号。 “ConsoleApplication0.exe”(Win32):已加载“C:\Windows\System32\msctf.dll”。已加载符号。 程序“[4228] ConsoleApplication0.exe”已退出,代码为 1 (0x1)。

有人知道为什么会这样吗?

【问题讨论】:

  • 没有第三方库的 PDB 本身并没有错。你真的需要调试 OpenCV 代码吗?
  • 但是正如你看到的程序已经以 code1 (0x1) 退出,程序没有做应该做的事情
  • 那么调试你的程序?或者您是否建议将缺少的 PDB 转换为返回码 1?
  • 我已经调试过了,alrikai 说 eroor 是由另一件事引起的,我会试着弄清楚是什么原因谢谢你的帮助

标签: opencv visual-studio-2012


【解决方案1】:

这些都不是致命的错误消息。这些仅仅是诊断性陈述(例如,没有任何问题,它只是通知您某些事件)。

PDB 文件是特定于 Visual Studio 的文件,其中包含项目的调试符号。如果您使用 OpenCV 的预构建库/dll,您将没有任何这些文件。幸运的是,您可以忽略这些消息,除非您希望使用调试器单步执行这些 dll 的代码。

如果它够烦你,你可以从源代码重新构建 opencv 并启用/ZI/Zi 选项。然而,就目前而言,这些消息都不会表明有任何问题。您的程序以代码 1 (0x1) 退出是由其他原因引起的,但您没有提供足够的信息来确定是什么。

Here's the official description of PDB files from MSDN:

程序数据库 (PDB) 文件包含调试和项目状态信息,允许增量链接程序的调试配置。使用 /ZI 或 /Zi 编译 C/C++ 程序时会创建 PDB 文件

【讨论】:

  • 感谢您的帮助,我会尝试找出导致错误的原因
猜你喜欢
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 2012-10-08
  • 2013-12-03
相关资源
最近更新 更多