【问题标题】:OpenCV Qt undefined reference errors while compiling编译时OpenCV Qt未定义的参考错误
【发布时间】:2016-12-26 11:23:02
【问题描述】:

我正在尝试使用深度传感器 (PMD Camboard) 并尝试将捕获的深度图像显示为实时流。我可以很好地从传感器获取数据。一旦我尝试放入 OpenCV 部件,问题就开始了。它们单独工作完美,但一旦我尝试整合它们,问题就开始了。我认为错误在于 CMakeLists.txt,因为即使我尝试编译一个只显示网络摄像头提要的简单程序,没有任何深度传感器的东西,我也会得到同样的错误。当我尝试仅使用 CMake for openCV 编译该程序时,该程序有效。

编辑:我尝试系统地禁用 CMake 的某些部分,以查看哪些部分确切触发了错误并发现该行:

link_directories(${royale_LIB_DIR})

是导致错误的那个。

当我尝试编译时出现以下错误:

    /usr/local/lib/libopencv_highgui.so.3.1.0: undefined reference to `QWidget::isFullScreen() const@Qt_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() const@Qt_5'
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QTransform::type() const@Qt_5'
/usr/local/lib/libopencv_cvv.so.3.1.0: undefined reference to `QWidget::hasHeightForWidth() const@Qt_5'
/usr/lib64/libQt5OpenGL.so.5: undefined reference to `QPen::color() const@Qt_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() const@Qt_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 

http://pastebin.com/KLKtzzSn 完全错误

而我的 CMakeLists.txt 如下:

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}")

我是 CMake 的新手,我只是 recently corrected。任何帮助将不胜感激。

【问题讨论】:

    标签: c++ qt opencv cmake


    【解决方案1】:

    错误列表显示链接中没有Qt5 Widgets。将以下行添加到您的 CMakeLists.txt:

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

    另一个问题是该系统中是否安装了 Qt 5。 也可以在这里阅读:cmake doesn't link libGLU using QtOpenGL,只要 Qt OpenGL 依赖项也缺失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2012-11-04
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多