opencv2.4.4 visual studion 2012 Не удается найти или открыть файл PDB

Я запускаю программу с использованием 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. Под Linker, каталог дополнительных библиотек, я добавил; $(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).

Кто-нибудь имеет представление о том, почему это происходит?

1 ответ

Решение

Ни одно из этих сообщений не является фатальной ошибкой. Это просто диагностические утверждения (например, нет ничего плохого, это просто информирование вас об определенных событиях).

Файл PDB - это специальный файл Visual Studio, в котором есть символы отладки для вашего проекта. Если вы используете предварительно собранные библиотеки libs/dll для OpenCV, у вас не будет ни одного из этих файлов. К счастью, вы можете игнорировать эти сообщения, если только вы не надеетесь войти в код для этих библиотек с помощью отладчика.

Если это вас беспокоит, вы можете пересобрать opencv из исходного кода и включить /ZI или же /Zi вариант. Как бы то ни было, ни одно из этих сообщений не указывает на то, что что-то не так. Выход из программы с кодом 1 (0x1) вызван чем-то другим, но вы не предоставили достаточно информации, чтобы определить, что именно.

Вот официальное описание файлов PDB от MSDN:

Файл базы данных программы (PDB) содержит информацию об отладке и состоянии проекта, которая позволяет инкрементно связывать конфигурацию отладки вашей программы. Файл PDB создается при компиляции программы на C/C++ с помощью /ZI или /Zi

Другие вопросы по тегам