2016-12-26 3 views
0

Ich versuche mit einem Tiefensensor (PMD Camboard) zu arbeiten und versuche das aufgenommene Tiefenbild als Livestream darzustellen. Ich kann die Daten vom Sensor gut bekommen. Das Problem beginnt, sobald ich versuche, die OpenCV-Teile einzubauen. Einzeln funktionieren sie perfekt, aber das Problem beginnt, sobald ich versuche, sie zu integrieren. Ich denke, der Fehler liegt bei der CMakeLists.txt, denn selbst wenn ich versuche, ein einfaches Programm zu kompilieren, das nur den Webcam-Feed anzeigt, ohne den Tiefensensor, bekomme ich den gleichen Fehler. Das genannte Programm funktioniert, wenn ich versuche es mit nur dem CMake für openCV zu kompilieren.OpenCV Qt undefined Referenzfehler beim Kompilieren

EDIT: Ich habe versucht, systematisch Teile der CMake Deaktivierung zu sehen, welche Teile genau den Fehler auszulösen und gefunden, dass die Zeile:

link_directories(${royale_LIB_DIR}) 

derjenige ist, der den Fehler verursacht.

ich die folgenden Fehler, wenn ich versuche zu kompilieren:

/usr/local/lib/libopencv_highgui.so.3.1.0: undefined reference to `QWidget::isFullScreen() [email protected]_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QAbstractSlider::setMinimum(int)@Qt_5' 
/usr/local/lib/libopencv_highgui.so.3.1.0: undefined reference to `non-virtual thunk to QBoxLayout::minimumSize() [email protected]_5' 
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QTransform::type() [email protected]_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QWidget::hasHeightForWidth() [email protected]_5' 
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QPen::color() [email protected]_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QFrame::changeEvent(QEvent*)@Qt_5' 
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QOpenGLMultiGroupSharedResource::insert(QOpenGLContext*, QOpenGLSharedResource*)@Qt_5_PRIVATE_API' 
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QPaintDevice::~QPaintDevice()@Qt_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QObject::QObject(QObject*)@Qt_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QTabWidget::metaObject() [email protected]_5' 
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QColorDialog::QColorDialog(QWidget*)@Qt_5' 
/usr/local/lib/libopencv_highgui.so.3.1.0: undefined reference to `QFutureInterfaceBase::setThreadPool(QThreadPool*)@Qt_5' 
/usr/lib64/libQt5OpenGL.so.5: undefined reference to 

Voll Fehler bei http://pastebin.com/KLKtzzSn

Und mein CMakeLists.txt ist wie folgt:

cmake_minimum_required(VERSION 2.8) 

set(CMAKE_PREFIX_PATH "share") 

#project (depthDataCallBack) 
project (webStream) 

find_package(OpenCV REQUIRED) 
find_package(royale REQUIRED) 


link_directories(${royale_LIB_DIR}) 

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc) 

add_executable(webStream webStream.cpp) 

target_link_libraries(webStream ${OpenCV_LIBS}) 
target_link_libraries(webStream "${royale_LIBS}") 

Ich bin neu zu CMake, nur recently corrected. Jede Hilfe wäre willkommen.

Antwort

0

Die Liste der Fehler zeigt, dass es keine Qt5-Widgets in Verbindung gibt. Fügen Sie die folgenden Zeilen zu Ihrer CMakeLists.txt:

target_link_libraries(webStream Qt5::Widgets) 
target_link_libraries(webStream Qt5::Core) 

Die andere Frage ist, ob oder nicht Qt 5 in diesem System installiert ist. Lesen Sie auch hier: cmake doesn't link libGLU using QtOpenGL solange dort auch Qt OpenGL Abhängigkeiten fehlen.

Verwandte Themen