Code::Blocks + OpenCV = problem

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

Ответить
Mowgli
Сообщения: 1
Зарегистрирован: 29 сен 2013, 21:09

Добрый вечер!


Мне сейчас потребовалось заставить работать OpenCV 2.3.1 с Code::Blocks 12.11 под Windows XP SP3.

Проблема возникает такая:
Обычные программы на С и С++ (без OpenCV) компилируются нормально. Но стоит только попытаться подключить что-нибудь из OpenCV, так сразу же при запуске скомпилированная программа вылетает с ошибкой:


Точка входа в процедуру __gxx_personality_v0 не найдена в библиотеке DLL libstdc++-6.dll

Process returned -1073741511


Что это может быть такое? И почему проблема с Code::Blocks-овским DLL вылезает только при подключении OpenCV?

PATH и к компиляторам MinGW в Code::Blocks, и к build'у OpenCV для MinGW прописан и в Windows, и в Code::Blocks. Настройки Toolchain в Code::Blocks (может быть, дело в них?)


C compiler: mingw32-gcc.exe
C++ compiler: mingw32-g++.exe
Linker for dynamic libs: mingw32-g++.exe
Linker for static libs: mingw32-g++.exe
Debugger: GDB/CDB debugger : Default
Resource compiler: windres.exe
Make program: mingw32-make.exe


Посмотрел, нет ли где-нибудь другого файла libstdc++-6.dll, который мог бы конфликтовать -- нету; единственный файл с таким именем имеется только в Code::Blocks.

Прошу только не советовать пересобрать заново OpenCV. Уже угробил на это 2 дня, ничего не получается; после плясок с бубном вокруг параметров в CMake оно сообщает, что всё успешно сконфигурировалось, но при попытке собрать вылетает с ошибкой:


collect2.exe: error: ld returned 1 exit status
mingw32-make.EXE[2]: *** [bin/libopencv_core231.dll] Error 1
mingw32-make.EXE[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2


Почитал разные англоязычные форумы -- у людей как-то работает без пересборки.

Ещё на англоязычных форумах говорят, что подобная проблема может быть из-за разных способов обработки исключения (dw2 или sjlj) у компилятора и у OpenCV. Но как можно выявить наличие такого конфликта, и что можно сделать для его устранения?

В принципе, я готов переустановить Code::Blocks или OpenCV на другую версию, если кто-нибудь подскажет проверенное сочетание версий, которое работает. Или вообще какую-нибудь другую бесплатную среду разработки для С++, успешно сочетающуюся с OpenCV (мне пока что, в принципе, только С++ нужно).


Заранее спасибо.
Ответить