undefined reference qt, opencv
Ich bin neu in Qt und openCV, und ich versuche, ein einfaches Projekt mit code:
in der .pro:
QT += core
QT -= gui
QT += widgets
TARGET = latihan_2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += E:\\OpenCV\\OpenCV\\opencv\\build\\include
LIBS += E:\OpenCV\OpenCV\opencv\build\x86\vc10\lib\opencv_core246.lib
LIBS += E:\OpenCV\OpenCV\opencv\build\x86\vc10\lib\opencv_highgui246.lib
LIBS += E:\OpenCV\OpenCV\opencv\build\x86\vc10\lib\opencv_imgproc246.lib
LIBS += E:\OpenCV\OpenCV\opencv\build\x86\vc10\lib\opencv_features2d246.lib
LIBS += E:\OpenCV\OpenCV\opencv\build\x86\vc10\lib\opencv_calib3d246.lib
in der main.cpp:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(){
//read image
cv::Mat image;
image = cv::imread("img.jpg");
//create image window named "My image"
cv::namedWindow("My Image");
//show the image on window
cv::imshow("My image", image);
//wait key for 5000ms
cv::waitKey(5000);
return 1;
}
jedoch, es immer Fehler geben über die undefined reference to cv::imread, cv::namedWindows, und die anderen CV-Funktionen, die ich verwendet.
verwende ich Qt creator 2.8.1, basierend auf Qt 5.1.1 und openCV-2.4.6.0
Jede Hilfe wäre sehr geschätzt werden!
Dank
Welche compiler verwenden Sie? "\x86\vc10" bedeutet wahrscheinlich, dass opencv ist kompiliert mit Visual C++. Verwenden Sie VC++ - Projekt Kompilierung zu verwenden oder mingw32?
Ich ändere es in : LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_core246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_highgui246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_imgproc246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_features2d246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_calib3d246.dll.a und es funktioniert! Danke alt-ufo!
Sie sind herzlich willkommen. BTW, für Ihre einfache Anwendung nur Kern-und highgui libs benötigt werden.
Was genau ist ein problem? Ist es Fehler beim laden, es nicht zeigen, das Fenster, etc.?
finden Sie hier stackoverflow.com/questions/20013903/...
Ich ändere es in : LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_core246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_highgui246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_imgproc246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_features2d246.dll.a LIBS += E:\OpenCV\OpenCV\opencv\build\x86\mingw\lib\libopencv_calib3d246.dll.a und es funktioniert! Danke alt-ufo!
Sie sind herzlich willkommen. BTW, für Ihre einfache Anwendung nur Kern-und highgui libs benötigt werden.
Was genau ist ein problem? Ist es Fehler beim laden, es nicht zeigen, das Fenster, etc.?
finden Sie hier stackoverflow.com/questions/20013903/...
InformationsquelleAutor Squirrelcages | 2013-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
undefined reference Fehler sind ein linking problem, was bedeutet, dass Ihr Projekt erfolgreich kompiliert wurde aber der linker ist nicht in der Lage, um den binären code für diese Funktionen.
Ich habe eine sehr einfache OpenCV/Qt Projekt, das setup kompiliert werden, die auf Windows/Linux/Mac OS X. Wenn Sie werfen Sie einen Blick auf die .pro Datei, werden Sie feststellen, dass für Windows ich tun:
Stellen Sie sicher, ersetzen Sie die 242 Zahl verweist
LIBS
mit den spezifischen OpenCV-version Sie haben.Es ist auch wichtig zu sagen, dass OpenCV ist zusammengestellt mit bestimmten flags, und abhängig von der binary-version, die Sie installiert haben, manchmal müssen Sie auch fügen Sie die folgenden Anweisungen, um die .pro - Datei des Projekts:
MTd
bezieht sich auf Multithreaded-Debug-DLL undMT
steht für Multithread-statische Verlinkung.InformationsquelleAutor karlphillip
Google brachte mich hier, wenn ich hatte das gleiche problem.
Die Lösungen, die hier hat mir nicht geholfen. Aber schließlich fand ich das problem in meinem Fall: ich habe nicht legen Sie einen Wert für
CMAKE_BUILD_TYPE
imcmake gui
.Sie haben die Wahl zwischen
release
unddebug
, und ich denke, man muss wählen.Ich kompiliert OpenCV 3.0.0 erfolgreich Dank, der Letzte Tipp.
InformationsquelleAutor Plouff
karlphillips ist richtig, es ist ein Fehler in der Art und Weise, auf die Sie verknüpfen Ihre opencv Abhängigkeiten zu Qt. Sie können manuell geben Sie die Informationen, wie von anderen Antworten hier (jedes mal habe ich es manuell ich landete in Unordnung es alle bis) oder Sie können Sie verwenden die eingebaute "Bibliothek Hinzufügen..." - option (SUPER LEICHT).
Den unten aufgeführten Schritten finden Sie in der Qt5-Dokumentation: [http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html%5D%5B1%5D unter den "Zur Bibliothek Hinzufügen" Abschnitt.
Lassen Sie mich noch einige Besonderheiten aus hier...
InformationsquelleAutor IntenseCorona
Sollten Sie wahrscheinlich nicht verwenden ::Lebenslauf, nur direkt verwenden Sie die Funktion und versuchen Sie.
Sorry für den falschen Vorschlag, der wahre Grund ist nicht in der Lage zu finden, die Ihre libs:
sollten dies verwenden:
LIBS +=
E:\\OpenCV\\OpenCV\\opencv\\build\\x86\\vc10\\lib\\opencv_core246.lib
InformationsquelleAutor Jie Xu