我在Ubuntu 10.04上使用Qt支持构建OpenCV时遇到了困难。 我尝试了所有组合:
[OpenCV-2.3.0,OpenCV-2.3.1,OpenCV-2.2.0] x [QT-4.6.0 QT-4.7.4和我的分发版QT-4.6.2附带的版本]为no果。
我在构建过程中遇到的链接器错误包括:
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QMapData::createData(int)'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QVectorData::reallocate(QVectorData*, int, int, int)'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QMapData::node_create(QMapData::Node**, int, int)'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QListData::detach3()'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QVectorData::free(QVectorData*, int)'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `qBadAlloc()'
../../lib/libopencv_highgui.so.2.3.0: undefined reference to `QVectorData::allocate(int, int)'
我用谷歌搜索了半天,但似乎没有人有类似的问题...
使用GCC-4.4.3,我可以在没有Qt的情况下构建和使用OpenCV,没有任何问题。
在cmake(-gui)中,我只检查“BUILD_EXAMPLES”和“WITH_QT”。我是否接受初始的“QT_QMAKE_EXECUTABLE = / usr / bin / qmake”或将其导航到手动安装的qt版本(sdk安装程序,我没有从源代码构建QT)并没有什么区别。 CMAKE唯一没有找到的东西是一些QT调试库,例如: QT_DBUS_LIBRARY-NOTFOUND。
有谁知道我在这里做错了什么?
谢谢, 托马斯
更新 好吧,我终于意识到CMAKE在构建过程中没有链接所需的Qt库(例如在构建示例时)。 快速而肮脏的黑客是添加
-lQtGui -lQtCore -lQtOpenGL
到所有CMAKE_XXX_LINKER_FLAGS(在cmake-gui中,选择“分组视图”,然后这些标志位于“CMAKE”组中。)
我仍然想知道为什么libs没有自动链接,为什么几乎没有人遇到这个问题。也许没有人用QtGui构建OpenCV?
托马斯