我想用Qt在Windows XP上使用opencv创建一个gui应用程序。我之前使用过Qt和opencv,但从未在一起。长话短说,我无法使用Qt打开opencv。
在我搜索的所有论坛上,只有很少的信息散布在周围,通常没有答案,我在这里总结了我已经采取的所有步骤。
WITH_QT
已检查)Highgui
是失败者之一。问题:找不到Qt\4.6.3\src\corelib\global\qconfig.h
。我下载的源代码中根本没有qconfig.h
!我找到了一些模板qconfig-large.h
,qconfig-small.h
等,因此我将其中一个重命名为qconfig.h
。现在我得到了一个充满链接器错误的屏幕。qbenchmark.h
,其中包含无法找到的QtTest/qbenchmarkmetric.h
。
CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-g++.cmake:1 (INCLUDE):
include could not find load file:
C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-gcc.cmake
Call Stack (most recent call first):
C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:59 (INCLUDE)
是的,在Modules / Platform目录中有一个Windows-g++.cmake
文件,但它引用了不存在的Windows-gcc.cmake
!
有没有人设法在Windows上使用Qt支持构建opencv,如果有,是怎么做的?
修改:
Qt来源肯定存在问题。我设法生成一个MinGW makefile,并且构建一切正常,直到它在src/testlib/qtestsystem.h
停止,因为QtCore/qelapsedtimer.h
的包含哪个文件位于完全不同的目录中! Qt是否发布了不完整的来源,或者我做错了什么?
EDIT2
我的痛苦还在继续。我清理了一切并重新开始。这次甚至没有尝试Visual Studio。
libopencv_core231
,etv。)。我很高兴,但我很快就庆祝这件事!! exited with code -1073741511
.exe
。它抱怨缺少libstdc++-6.dll
.exe
所在的同一文件夹中,但都没有用。我得到了#34;程序入口点_ZNSt9exceptionD2Ev无法位于动态链接库libstdc ++ - 6.dll。"既。这是在调试中,所以我尝试发布,我得到了类似的错误,其他一些入口点未找到。-static-libgcc -static-libstdc++
中的QMAKE_LFLAGS =
行和QMAKE_LFLAGS_DEBUG =
处添加了c:\Qt\mkspecs\win32-g++\qmake.conf
。即使在重新启动Qt Creator并重建之后,这根本没有任何影响。如果我不复制libstdc++-6.dll
,它仍然需要它。当然,没有opencv的简单测试程序从exe
运行而不需要任何libstdc++-6.dll
,这意味着我的opencv构建负责吗?我想重新构建opencv,但我找不到任何涉及libstdc ++的CMake设置!
这可能是一个线索:
使用其中一个libstdc++-6.dll
文件时,有关缺少入口点的错误提到QtGui4.dll。我有一个调试版本,所以它应该是QtGui * d * 4.dll,不应该吗?是否有不同的libstdc++
用于调试和发布?无论哪种方式,我都尝试构建版本,但它也没有工作,同样的错误
这个星球上没有一个人在Windows xp上尝试将Qt与QtCreator和opencv 2.3一起使用,并且成功了吗?从搜索所有论坛和Qt档案,我找不到任何人。我已准备好在Linux中进行开发,但无论如何我迟早都需要Windows版本。
我试图抵制黑暗面的诱惑,它在我的耳边低声说要忘记Qt,MinGW,g ++,opencv并试图在Visual Basic中破解一些东西。哦,恐怖!
答案 0 :(得分:3)
仅供参考,我基本上完成了将Qt和OpenCV结合在一起的噩梦。这是我的经历:
所以我可以肯定的是,对于经验不足的人来说,使用Qt和OpenCV远非琐事!
答案 1 :(得分:2)
你应该从源代码构建OpenCV,就像你已经做到的那样,没有麻烦。请注意,最新版本的OpenCV可以使用Qt构建,而不是Qt。 Highgui可选择使用Qt!如果您使用或不使用Qt进行构建,这是您的选择。
我将Qt库与OpenCV一起使用了很长时间。我从来没有去过SDK,而是使用了为相应的VS版本构建的库。见这里:http://qt.nokia.com/downloads/downloads#qt-lib
您可以将它用于VS2008和VS2010,但早期版本也可用于VS2005。 Visual Studio的旧版本很难吸收,为什么还要使用它们。
然后我从来没有遇到过在CMake项目中将它拉到一起的问题。它遵循:
find_package(OpenCV)
find_package(Qt4 ${VOLE_MINIMUM_QT_VERSION} COMPONENTS QtCore QtGui)
find_package(Qt4 ${VOLE_MINIMUM_QT_VERSION} COMPONENTS QtOpenGL)
...
qt4_wrap_cpp(moc_sources ${vole_module_moc_sources})
qt4_wrap_ui(uic_sources ${vole_module_ui_sources})
qt4_add_resources(rcc_sources ${vole_module_rcc_sources})
你知道,通常的东西。
五个星期之后你可能会在Windows下运行它,而在GNU / Linux下它是shell中的三个命令。
答案 2 :(得分:2)
您可以更轻松地使用OpenCV配置Qt Creator。 This post展示了如何逐步实现这一目标!它还显示了几个屏幕截图,以帮助完成此过程。