Перейти к содержимому
Compvision.ru
bluebyte

Release не работает, в Debug - все ок. Где искать проблему?

Recommended Posts

Всем привет!

Пока занимался стабилизированием видео, тестировал все в 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)

Какие мысли? В чем проблема?

Спасибо за внимание!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Любимая тема Nuzhny. Даже я запомнил :)

Project Properties -> C/C++ -> Code Generation -> установить Runtime Library в соответствии с конфигурацией проекта:

/MT или /MD для Release,

/MTd или /MDd для Debug.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Любимая тема Nuzhny. Даже я запомнил :)

Project Properties -> C/C++ -> Code Generation -> установить Runtime Library в соответствии с конфигурацией проекта:

/MT или /MD для Release,

/MTd или /MDd для Debug.

Стояло по умолчанию, так что вопрос открыт

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, моя "любимая" тема.

Начнём сначала: что значит "не запускается"? Падает с ошибкой при старте? Пишет что-то ещё? Какая ОС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, моя "любимая" тема.

Начнём сначала: что значит "не запускается"? Падает с ошибкой при старте? Пишет что-то ещё? Какая ОС?

win7 64b

VS10 32b

openCV просто скачан с сайта, не компилировался на моем компе

"Не запускается" - значит, что вот эта конструкция

cv::VideoCapture first_pass_capture("movie.avi");

не срабатывает

1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так он, наверное, файл найти не может. Попробуй прописать полный путь к нему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так он, наверное, файл найти не может. Попробуй прописать полный путь к нему.

Прописал, в Debug работает, в Release опять нет.=(

const std::string in_filename = "C:/movie2.avi";

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если .avi файл в директорию Debug (где debug exe-шник расположен) бросить, задав путь просто как movie2.avi и запустить exe-шник не из IDE, а из винды?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Похоже, что и правда, у тебя по-разному скомпилирован твой exe и OpenCV'шные dll. Это очень просто отследить - "портятся" STL контейнеры, в данном случае std::string.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем, закончилось тем, что я скомпилировал библиотеку. Добавил HAVE_VIDEOINPUT HAVE_DSHOW в Preprocesser Definitions, как прочитал где-то на просторах интернета. Заработало. Не знаю, заработало бы без этой настройки или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×