2013-07-26 7 views
0

Je suis en train de se OpenCv2.4.6 à travailler avec QT5.1.0 J'ai suivi ce guide jusqu'à Qt creator 5.0.1 with OpenCv 2.3.4 on windowsOpenCV 2.4.6 avec QT 5.1.0 Erreurs

Unfortunatly après avoir fini d'essayer l'exemple d'application (afficher une image en utilisant OpenCV dans le QtCreator je reçois ces erreurs:

[Project-Path]\main.o:-1: In function `main': 
[Project-Path]\main.cpp:8: error: undefined reference to `cv::imread(std::string const&, int)' 
[Project-Path]\main.cpp:9: error: undefined reference to `cv::namedWindow(std::string const&, int)' 
[Project-Path]\main.cpp:10: error: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' 
[Project-Path]\main.cpp:10: error: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)' 
[Project-Path]\main.cpp:11: error: undefined reference to `cv::waitKey(int)' 
[Project Build Path Desktop Debug]\debug\main.o:-1: In function `ZN2cv3MatD1Ev': 
    [OpenCV/Install/include]\opencv2\core\mat.hpp:278: error: undefined reference to `cv::fastFree(void*)' 
[Project Build Path Desktop Debug]\debug\main.o:-1: In function `ZN2cv3Mat7releaseEv': 
    [OpenCV/Install/include]\opencv2\core\mat.hpp:367: error: undefined reference to `cv::Mat::deallocate()' 
collect2.exe:-1: error: error: ld returned 1 exit status 

le "[]" les chemins sont ma mise en forme et censé aider à garder la trace

main.cpp

.
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 


using namespace cv; 
int main() { 
     // read an image 
     Mat image = imread("img.jpg"); 
     namedWindow("My Image"); 
     imshow("My Image", image); 
     waitKey(5000); 

     return 1; 
} 

myFirstOpenCVProject.pro

QT  += core 
QT  -= gui 
TARGET = myFirstOpenCVProject 
CONFIG += console 
CONFIG -= app_bundle 
TEMPLATE = app 
SOURCES += main.cpp 
INCLUDEPATH += C:/qt/OpenCV246_bin/install/include 
LIBS += -LC:/qt/OpenCV246_bin/install/lib/lopencv_core246.dll 
LIBS += -LC:/qt/OpenCV246_bin/install/lib/lopencv_highgui246.dll 
LIBS += -LC:/qt/OpenCV246_bin/install/lib/lopencv_imgproc246.dll 
LIBS += -LC:/qt/OpenCV246_bin/install/lib/lopencv_features2d246.dll 
LIBS += -LC:/qt/OpenCV246_bin/install/lib/lopencv_calib3d246.dll 

Pouvez-vous me aider à résoudre ce problème? Je ne peux pas trouver des solutions applicables à mon cas ...

Répondre

3

-L est d'ajouter des répertoires dans le chemin de recherche. Les bibliothèques actuelles sont ajoutées via -l. La ligne correcte serait:

LIBS += -LC:/qt/OpenCV246_bin/install/lib -llopencv_core246 -llopencv_highgui246 ... 
0

Je pense que vous manquez les libs statiques de OpenCV:

opencv_core246.lib 
opencv_highgui246.lib 
opencv_video246.lib 
opencv_ml26d.lib 
opencv_legacy246.lib 
opencv_imgproc246.lib 
opencv_whatever.lib 

ne sais pas les commandes pro très bien. Peut-être quelque chose comme:

LIBS += -Lc:/blabla/opencv_imgproc246.lib