2015-03-28 1 views
1

J'ai installé OpenCV via l'instruction this.QT ne peut pas trouver les bibliothèques openCV

J'utilise OpenCV quand et compile le code via cmake - et tout va bien. Mais maintenant, je suis en train d'utiliser OpenCV de QT, et je reçois des erreurs comme ceci:

error: undefined reference to `cvCreateCameraCapture' 

Les mêmes erreurs pour toutes les fonctions de OpenCV.

J'ai essayé d'ajouter .pro ce code:

INCLUDEPATH += /usr/local/include/opencv2 
LIBS += -L/usr/local/lib 
LIBS += -lopencv_core 
LIBS += -lopencv_imgproc 
LIBS += -lopencv_highgui 
LIBS += -lopencv_ml 
LIBS += -lopencv_video 
LIBS += -lopencv_features2d 
LIBS += -lopencv_calib3d 
LIBS += -lopencv_objdetect 
LIBS += -lopencv_contrib 
LIBS += -lopencv_legacy 
LIBS += -lopencv_flann 

Mais il est pas du travail. Les répertoires /usr/local/include/opencv2 existent et ne sont pas vides.

Alors, qu'est-ce qui ne va pas?

+2

'LIBS + = pkg-config --libs opencv' – Kiran

+0

@Kiran, merci! Tu m'as aidé! Mais, QT dit qu'il ne connaît pas pkg-config, et j'ai écrit LIBS = 'pkg-config --libs opencv'. Il a été résolu mon problème. – Andrew

+0

Ce site fait une erreur dans le format. Tout après "=" doit être entre guillemets. – Andrew

Répondre

2

Ajouter ce fichier à .pro:

LIBS += "pkg-config --libs opencv"   
+0

Cher Downvoter, la réponse a été remerciée par OP. Veuillez lire les commentaires de l'OP en question avant de voter plus bas ou laisser un commentaire pour la raison du vote. – Kiran

+0

Regardez ici aussi: http://stackoverflow.com/questions/16972066/using-pkg-config-with-qt-creator-qmake-on-mac-osx – AlexanderVX

0

vous obtenez une erreur de liaison, de sorte que la compilation est correcte. Pour ajouter correctement les répertoires de la bibliothèque de liaison et les bibliothèques de liaison à votre fichier .pro, vous devez exécuter une commande comme celle-ci sur la console:

nomutilisateur @ linux-host: ~> echo $ (pkg-config --libs OpenCV)

Vous devriez alors lire une longue liste de bibliothèques comme dans la ligne suivante:

-lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect - lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab /usr/lib64/libXext.so /usr/lib64/libX11.so/us r/lib64/libICE.so /usr/lib64/libSM.so /usr/lib64/libGL.so /usr/lib64/libGLU.so -lrt -lpthread -lm -ldl

Après avoir obtenu cette longue séquence de chaînes avec toutes les bibliothèques et les options, insérez-le dans le fichier .pro comme ceci:

LIBS + = -lopencv_calib3d -l ... ... insérer toutes les chaînes comme vu ci-dessus!

Enregistrez le fichier .pro, réexécutez qmake et réexécutez. L'erreur de liaison aurait dû disparaître. Si le problème persiste ou si d'autres erreurs de liaison sont affichées, recherchez tous les fichiers portant l'extension .pc dans votre répertoire de compilation opencv (et sous-répertoires) et copiez-les en tant que root dans le répertoire/usr/share/pkgconfig Puis, exécutez à nouveau la commande ci-dessus et insérez dans le fichier .pro la séquence correcte de chaînes identifiant les options de la bibliothèque dans la ligne LIBS + = et enregistrez le fichier .pro, relancez qmake et relancez make .