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

Проблема линковки OpenCV в QT

Recommended Posts

Возникла такая проблема.

Пытаюсь подключить к QT-проекту библиотеку OpenCV 2.3 - проделываю стандартный набор действий

1. в .pro файл добавляю пути к файлам библиотеки и хидерам:

Код:

INCLUDEPATH += C:\\LIBRS\\OpenCV2.3\\build\\include

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_calib3d230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_contrib230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_core230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_features2d230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_flann230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_gpu230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_highgui230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_imgproc230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_legacy230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_ml230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_objdetect230.dll.a

LIBS += C:\\LIBRS\\OpenCV2.3\\build\\x86\\mingw\\lib\\libopencv_video230.dll.a

2. В переменную Path прописываю путь к dll-кам:

Код:

C:/LIBRS/OpenCV2.3/build/x86/mingw/bin

3. А вот собственно тестовый main файл:

Код:

#include "opencv2/opencv.hpp"

int main()

{

cv::Mat image = cv::imread("C:/pictures/img1.jpg");

cv::imshow("Window", image);

cv::waitKey(0);

return 0;

}

В итоге выводится вот такая штука:

Код:

11:02:48: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe»

C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug

mingw32-make.exe[1]: Entering directory `C:/QtSDK/PROJECTS/testnew/TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________'

g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\..\Desktop\Qt\4.8.1\mingw\include\QtGui" -I"..\..\..\Desktop\Qt\4.8.1\mingw\include" -I"..\..\..\..\LIBRS\OpenCV2.3\build\include" -I"..\..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"debug" -I"..\TNT" -I"." -I"..\..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o debug\main.o ..\TNT\main.cpp

g++ -mthreads -Wl,-subsystem,windows -o debug\TNT.exe debug/main.o -L"c:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" -lmingw32 -lqtmaind C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_calib3d230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_contrib230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_core230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_features2d230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_flann230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_gpu230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_highgui230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_imgproc230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_legacy230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_ml230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_objdetect230.dll.a C:\LIBRS\OpenCV2.3\build\x86\mingw\lib\libopencv_video230.dll.a -lQtGuid4 -lQtCored4

mingw32-make.exe[1]: Leaving directory `C:/QtSDK/PROJECTS/testnew/TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________'

debug/main.o: In function `main':

C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../TNT/main.cpp:6: undefined reference to `cv::imread(std::string const&, int)'

C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../TNT/main.cpp:7: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../TNT/main.cpp:7: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'

C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../TNT/main.cpp:8: undefined reference to `cv::waitKey(int)'

debug/main.o: In function `~Mat':

C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../../../../LIBRS/OpenCV2.3/build/include/opencv2/core/mat.hpp:297: undefined reference to `cv::fastFree(void*)'

debug/main.o:C:\QtSDK\PROJECTS\testnew\TNT-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________/../../../../LIBRS/OpenCV2.3/build/include/opencv2/core/mat.hpp:381: undefined reference to `cv::Mat::deallocate()'

collect2: ld returned 1 exit status

mingw32-make.exe[1]: *** [debug\TNT.exe] Error 1

mingw32-make.exe: *** [debug] Error 2

11:02:50: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился с кодом 2.

Возникла ошибка при сборке проекта TNT (цель: Desktop)

Во время выполнения сборки на этапе «Сборка»

Получается, что компилятор не может прочитать dll-ки... И что самое интересное, до этого у меня все нормально работало. Вот вчера решил продолжить работу над проектом, попробовал пересобрать, ничего в нем не меняя, и вот такие ошибки появились. Чего я только не пробовал: и винду переустанавливал, и OpenCV вручную пересобирал, пробовал разные версии OpenCV (от 2.2 до 2.4.1) и dll-ки к исходникам кидал - все то же самое...

Подскажите, что случилось-то???

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


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

По моему, у меня подобное решалось удалением *.user файлов, хотя могу ошибаться (давно qt не занимался), но что то я удалил и все заработало.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×