bluebyte 1 Жалоба Опубликовано August 2, 2011 Всем привет! Пока занимался стабилизированием видео, тестировал все в Debug. Как только выставил Release (установил такие же настройки, что и в debug, только библиотеки без буковки "d") программа перестала запускаться (при этом спокойно компилируется). Далее написал простой пример, но ничего не изменилось, видео не открывается. Вот код: #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/imgproc/imgproc_c.h> #include <opencv2/imgproc/imgproc.hpp> int main() { cvNamedWindow("Test", CV_WINDOW_AUTOSIZE); cv::VideoCapture first_pass_capture("movie.avi"); cv::Mat cur_frame; first_pass_capture.read(cur_frame); cv::imshow("Test", cur_frame); cv::waitKey(0); } Если в настройках линкеру указать библиотеки с буквой d, то в качестве ошибки выдает следующее: warninig: Error openning file (C:\Users\vp\work\ocv\opencv\modules\highgui\src\cap_ffmpeg.cpp:44) Какие мысли? В чем проблема? Спасибо за внимание!) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 2, 2011 Любимая тема Nuzhny. Даже я запомнил Project Properties -> C/C++ -> Code Generation -> установить Runtime Library в соответствии с конфигурацией проекта: /MT или /MD для Release, /MTd или /MDd для Debug. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bluebyte 1 Жалоба Опубликовано August 2, 2011 Любимая тема Nuzhny. Даже я запомнил Project Properties -> C/C++ -> Code Generation -> установить Runtime Library в соответствии с конфигурацией проекта: /MT или /MD для Release, /MTd или /MDd для Debug. Стояло по умолчанию, так что вопрос открыт Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано August 2, 2011 Да, моя "любимая" тема. Начнём сначала: что значит "не запускается"? Падает с ошибкой при старте? Пишет что-то ещё? Какая ОС? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bluebyte 1 Жалоба Опубликовано August 2, 2011 Да, моя "любимая" тема. Начнём сначала: что значит "не запускается"? Падает с ошибкой при старте? Пишет что-то ещё? Какая ОС? win7 64b VS10 32b openCV просто скачан с сайта, не компилировался на моем компе "Не запускается" - значит, что вот эта конструкция cv::VideoCapture first_pass_capture("movie.avi"); не срабатывает Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано August 3, 2011 Так он, наверное, файл найти не может. Попробуй прописать полный путь к нему. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bluebyte 1 Жалоба Опубликовано August 3, 2011 Так он, наверное, файл найти не может. Попробуй прописать полный путь к нему. Прописал, в Debug работает, в Release опять нет.=( const std::string in_filename = "C:/movie2.avi"; Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bluebyte 1 Жалоба Опубликовано August 3, 2011 Если запустить Release в режиме debugging выдает вот это Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 3, 2011 А если .avi файл в директорию Debug (где debug exe-шник расположен) бросить, задав путь просто как movie2.avi и запустить exe-шник не из IDE, а из винды? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано August 3, 2011 Похоже, что и правда, у тебя по-разному скомпилирован твой exe и OpenCV'шные dll. Это очень просто отследить - "портятся" STL контейнеры, в данном случае std::string. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bluebyte 1 Жалоба Опубликовано August 4, 2011 В общем, закончилось тем, что я скомпилировал библиотеку. Добавил HAVE_VIDEOINPUT HAVE_DSHOW в Preprocesser Definitions, как прочитал где-то на просторах интернета. Заработало. Не знаю, заработало бы без этой настройки или нет. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах