opencv2.4.4 visual studio 2012无法找到或打开PDB文件

时间:2013-04-25 02:39:41

标签: opencv visual-studio-2012

我正在使用opencv libraray和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

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

      

    '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)。

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

1 个答案:

答案 0 :(得分:2)

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

PDB文件是Visual Studio特定文件,其中包含项目的调试符号。如果您正在为OpenCV使用预构建的libs / dll,那么您将不会拥有任何这些文件。幸运的是,您可以忽略这些消息,除非您希望使用调试器进入这些dll的代码。

如果您遇到困难,可以从源代码重新构建opencv并启用/ZI/Zi选项。但是,无论如何,这些消息都不会表明任何错误。您的程序退出代码1(0x1)是由其他原因引起的,但您没有提供足够的信息来确定代码。

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

  

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

编译C / C ++程序时,将创建PDB文件