Dodanie biblioteki OpenCV do Qt

0

Cześć Wszystkim,

Mam pewien problem,

Dodałem biblioteki do Qt Creatora, ale cały czas wyskakuje podczas uruchomienia programu, że nie ma poprawnie linkowanych bibliotek.

Mam tak:

INCLUDEPATH += C:\OpenCV\opencv\build\include

LIBS += -lopencv_core -lopencv_cudaimgproc -lopencv_cudaobjdetect -lopencv_imgcodecs -lopencv_imgproc -lopencv_objdetect -lopencv_video -lopencv_videoio -lopencv_videostab

Próbowałem na różne sposoby i nic nie działa...

Ma ktoś jakiś pomysł?

Pozdrawiam

0

slashe nie w tą stronę.
Mimo, że to Windows to separatory katalogu mają być po Linux'owemu.
Backslash ma specjalne znacznie w pliku pro.
tak samo brakuje ci ścieżki do bibliotek (poniżej zgaduje jak ma wyglądać ta ścieżka).

win32 {
    INCLUDEPATH += C:/OpenCV/opencv/build/include

    LIBS  += -LC:/OpenCV/opencv/build/lib \
        -lopencv_core \
        -lopencv_cudaimgproc \
        -lopencv_cudaobjdetect \
        -lopencv_imgcodecs \
        -lopencv_imgproc \
        -lopencv_objdetect \
        -lopencv_video \
        -lopencv_videoio \
        -lopencv_videostab
}
unix {
    CONFIG += link_pkgconfig
    PKGCONFIG += opencv
}
0

Dalej to nie działa takim sposobem,

Po mojemu wyszło tak:

INCLUDEPATH += C:/OpenCV/opencv/build/include

LIBS += -lopencv_core
-lopencv_cudaimgproc
-lopencv_cudaobjdetect
-lopencv_imgcodecs
-lopencv_imgproc
-lopencv_objdetect
-lopencv_video
-lopencv_videoio
-lopencv_videostab
-LC:/OpenCV/opencv/build/x86/vc12/lib

No i próbowałem też zrobić tak w Visual Studio 2013, bo mam połączone z Qt, ale już do tego projektu Qt, jak dodam bibliotekę OpenCV tak samo jak robiłem dla "czystego" Visuala to nie dziala, wywala kolo 155 bledow. Jezeli robie projekt bez Qt w Visualu to jest wszystko ok...Jak temu zaradzic?

0

Zacznij od podawania KONKRETÓW a nie ogólników.

Czego używasz:

  • IDE: Qt Creator (wersja) / Visual studio / ??
  • Qt (wersja)
  • Kompilator (toolchain): gcc/vc++ (pamietaj, że te same biblioteki dla vc++ nie zadziałają z gcc i na odwrót)

Jaki dokładnie nasz bład? Napisanie "nadal nie działa" zasługuje jedynie na odpowiedź: a u mnie nadal działa.

  • zrób copy-paste z logów build-a
0

Używam Qt Creatora 3.5.1 na bazie Qt 5.5.1

Jeżeli łączę z VS to z 2013 Professional.

Znalazłem coś takiego w necie i zaczął odpalać się program "czysty", bez zadnego kodu uzywanego w OpenCV:

LIBS += -L"C:/OpenCV/opencv/build/x86/vc12/lib"
-lopencv_core2413d
-lopencv_calib3d2413d
-lopencv_contrib2413d
-lopencv_features2d2413d
-lopencv_flann2413d
-lopencv_gpu2413d
-lopencv_highgui2413d
-lopencv_imgproc2413d
-lopencv_videostab2413d
}

CONFIG(debug,debug|release) {
DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
LIBS += -L"C:/OpenCV/opencv/build/x86/vc12/lib"
-lopencv_core2413
-lopencv_calib3d2413
-lopencv_contrib2413
-lopencv_features2d2413
-lopencv_flann2413
-lopencv_gpu2413
-lopencv_highgui2413
-lopencv_imgproc2413
-lopencv_videostab2413
}
}

A tu błędy po zastosowaniu jakiegoś kodu :

C:\Qt\Qt5.5.1\Tools\QtCreator\bin\jom.exe -f Makefile.Release
cl -c -nologo -Zc:wchar_t -FS -O2 -MD -Zc:strictStrings -GR -W3 -w34100 -w34189 -w44996 -EHsc -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I..\TestAppQt -I. -I........\OptiNavCV\opencv\build\include -I........\Qt\Qt5.5.1\5.5\msvc2013_64\include -I........\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtWidgets -I........\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtGui -I........\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtANGLE -I........\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtCore -Irelease -I. -I........\Qt\Qt5.5.1\5.5\msvc2013_64\mkspecs\win32-msvc2013 -Forelease\ @C:\Users\szymo\AppData\Local\Temp\mainwindow.obj.11752.15.jom
mainwindow.cpp
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='' processorArchitecture=''" /MANIFEST:embed /OUT:release\TestAppQt.exe @C:\Users\szymo\AppData\Local\Temp\TestAppQt.exe.11752.1422.jom
mainwindow.obj : error LNK2019: unresolved external symbol "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPEAX@Z) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol "public: __cdecl cv::_InputArray(class cv::Mat const &)" (??0_InputArray@cv@@QEAA@AEBVMat@1@@Z) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol "public: void __cdecl cv::deallocate(void)" (?deallocate@Mat@cv@@QEAAXXZ) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol "int __cdecl cv::_interlockedExchangeAdd(int *,int)" (?_interlockedExchangeAdd@cv@@YAHPEAHH@Z) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV_InputArray@1@@Z) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?imread@cv@@YA?AVMat@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
release\TestAppQt.exe : fatal error LNK1120: 6 unresolved externals
jom: C:\Users\szymo\Documents\build-TestAppQt-Desktop_Qt_5_5_1_MSVC2013_64bit-Release\Makefile.Release [release\TestAppQt.exe] Error 1120
jom: C:\Users\szymo\Documents\build-TestAppQt-Desktop_Qt_5_5_1_MSVC2013_64bit-Release\Makefile [release] Error 2
0959: The process "C:\Qt\Qt5.5.1\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project TestAppQt (kit: Desktop Qt 5.5.1 MSVC2013 64bit)
When executing step "Make"

0

http://stackoverflow.com/a/15890266/1387438

czyli popraw na:

win32 {
    INCLUDEPATH += C:/OpenCV/opencv/build/include
 
    LIBS  += -LC:/OpenCV/opencv/build/lib \
        libopencv_core2413d \
        libopencv_cudaimgproc2413d \
        libopencv_cudaobjdetect2413d \
        libopencv_imgcodecs2413d \
        libopencv_imgproc2413d \
        libopencv_objdetect2413d \
        libopencv_video2413d \
        libopencv_videoio2413d \
        libopencv_videostab2413d
}

Niestety nie mogę ci tego sprawdzić, bo dawna nie mam maszyny z Windows.
Na dodatek upewnij się, które z bibliotek są ci potrzebne (może jakiś brakuje, może jakieś zostały dodane niepotrzebnie)

1 użytkowników online, w tym zalogowanych: 0, gości: 1