Интеграция QT и OpenCV 2.4.6, Проблема с подключение библиотеки OpenCV совместно с QT |
Здравствуйте, гость ( Вход | Регистрация )
Интеграция QT и OpenCV 2.4.6, Проблема с подключение библиотеки OpenCV совместно с QT |
skipy |
31.7.2013, 0:49
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 31.7.2013 Пользователь №: 3891 Спасибо сказали: 0 раз(а) Репутация: 0 |
Система: Windows 7 x64. QT: QT 5.1.0 x32;
компилятор mingw 4.8 x32 в системной переменной PATH прописал путь к папке bin (пути к полученным dll opencv в ходе компиляции) Запускается D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\test3.exe... Программа неожиданно завершилась. D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\test3.exe завершился с кодом -1073741819 генерировал конфиги при помощи cmake 2.8.11.2 меняя настройки: WITH_OPENGL - enabled, WITH_QT - enabled процессорные расширения команд sse сверял с утилитой cpu-z собирал командами mingw32-make mingw32-make install ошибок не было pro-файл:
пробовал брать либы из папки install/lib и использовал укороченный синтаксис с "l" "L", но также эффекта не дало и прописывал к самим dll в папке bin пробовал менять описание путей динамических либ (брал собранные под mingw либы из библиотеки):
файл mainwindow.h
файл mainwindow.cpp
ps: до этого подключал OpenCV к CodeBlocks без библиотеки QT проблем не было. Почему необходимо QT: gui приложения предполагаем писать на QT. |
|
|
Iron Bug |
31.7.2013, 7:42
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
завершился с кодом -1073741819 это ошибка обращения к памяти, запись по нулевому указателю или выход за границы массива. обычно грубая ошибка программирования, никак не связанная с библиотеками или компилятором. ui->setupUi(this); у тебя в контрукторе this недоопределён. нельзя так делать. отсюда и ошибка. |
|
|
ilyabvt |
31.7.2013, 16:36
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Цитата namespace Ui { class MainWindow; } Рекомендую к прочтению: Using a Designer UI File in Your Application |
|
|
ViGOur |
31.7.2013, 16:49
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Iron Bug |
31.7.2013, 21:21
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Если быть точным, то уже определен, правда не до конца, а вот в случае исключения в конструкторе будут проблемы. проблемы будут не только в случае с исключениями, но и в случае вызова виртуальных методов и конструкции дочерних классов (http://www.parashift.com/c++-faq/using-this-in-ctors.html). в общем, лучше не надеяться на авось и не создавать мест для наступания на грабли, особенно когда класс наследуется от чужих классов, реализация которых в любой момент может поменяться. в конструкторе объект должен создаваться и это его главная функция. всё остальное лучше делать вне конструктора. Сообщение отредактировал Iron Bug - 1.8.2013, 17:12 |
|
|
skipy |
31.7.2013, 21:24
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 31.7.2013 Пользователь №: 3891 Спасибо сказали: 0 раз(а) Репутация: 0 |
как я понял проблема с библиотекой libstdc++-6.dll
стек вызовов: Thread 1 (Thread 7144.0x1a78): #0 0x6fc830d0 in ?? () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libstdc++-6.dll No symbol table info available. #1 0x106e9e9a in cv::BmpDecoder::BmpDecoder() () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll No symbol table info available. #2 0x106f8a90 in cv::ImageCodecInitializer::ImageCodecInitializer() () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll No symbol table info available. #3 0x1079f5f7 in _GLOBAL__sub_I__ZN2cv6imreadERKSsi () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll No symbol table info available. #4 0x106b1eef in __do_global_ctors () at ../mingw/gccmain.c:59 nptrs = <optimized out> i = 2 #5 0x106b10f3 in DllMainCRTStartup@12 (hDll=0x106b0000, dwReason=1, lpReserved=0x28fd24) at ../mingw/dllcrt1.c:83 bRet = <optimized out> #6 0x77839950 in ntdll!RtlpNtMakeTemporaryKey () from C:\Windows\system32\ntdll.dll No symbol table info available. #7 0x106b0000 in ?? () No symbol table info available. #8 0x7783d8c9 in ntdll!RtlEmptyAtomTable () from C:\Windows\system32\ntdll.dll No symbol table info available. #9 0x106b1058 in __dll_exit () at ../mingw/dllcrt1.c:158 next_atexit = 0x34108 first_atexit = 0x34050 #10 0x7784681c in ntdll!RtlStatMemoryStream () from C:\Windows\system32\ntdll.dll No symbol table info available. #11 0x0028fd24 in ?? () No symbol table info available. #12 0x778452d6 in ntdll!TpCaptureCaller () from C:\Windows\system32\ntdll.dll No symbol table info available. #13 0x0028fd24 in ?? () No symbol table info available. #14 0x77839e79 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll No symbol table info available. #15 0x0028fd24 in ?? () No symbol table info available. #16 0x00000000 in ?? () No symbol table info available. |
|
|
skipy |
31.7.2013, 22:35
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 31.7.2013 Пользователь №: 3891 Спасибо сказали: 0 раз(а) Репутация: 0 |
по ходу я понял, всё-таки неправильно скомпилировал либы
cmake 2.8.11.2 не имеет findQt5CMake, а значит надо вручную прописывать пути к make-файлам Qt5Concurrent_DIR-NOTFOUND Qt5Core_DIR-NOTFOUND Qt5Test_DIR-NOTFOUND Qt5Widgets_DIR-NOTFOUND только теперь вот такой вопрос: где они находятся? Или их нету и необходимо самому написать |
|
|
ViGOur |
1.8.2013, 13:47
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
только теперь вот такой вопрос: где они находятся? Они есть в сырцах Qt, если ты используешь уже сконфигуренное и скомпиленное Qt, то тебе нужно скачать исходники Qt, и самому сконфигурить их...Или их нету и необходимо самому написать роблемы будут не только в случае с исключениями, но и в случае вызова виртуальных методов и контрукции дочерних классов Про виртуальные методы вылетело из головы... Я не говорю, что это правильно, а говорю о том, что для Qt Designer это принято и *.h c *.cpp файлы автоматически генерируются Qt Designer, которые отвечают за ручную компановку форм... |
|
|
skipy |
2.8.2013, 3:05
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 31.7.2013 Пользователь №: 3891 Спасибо сказали: 0 раз(а) Репутация: 0 |
скорей всего с Qt5 не совместимость. Поставил Qt4.8 - заработало
|
|
|
Гость_Гость_Dmitry_*_* |
27.8.2013, 10:10
Сообщение
#10
|
Гости |
C Qt 5 сейчас совместима последняя версия openCV - 2.4.6. Для предыдущих надо было много телодвижений.
На самом деле главное чтобы Qt и openCV были собраны одной версией компилятора. WITH_QT лишь добавляет дополнительные фичи для openCV GUI, без которых вполне можно обойтись, тем более GUI все равно будет построен на QT. До выхода последней версии openCV я просто качал установщик Qt5 на mingw, компилятор устанавливается вместе с пакетом, потом этим компилятором собирал OpenCV, но без WITH_QT. Пару дней назад прочитал, что теперь есть совместимость с QT5 и собрал с WITH_QT. P.S. Может у меня в проекте чет не так, но расширеный GUI тупит страшно. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 5:27 |