2013-02-17 27 views

回答

18

我一直在为此奋斗了一段时间,并在今天上午让它工作。我想通过发布我的发现,我会回馈给这个美好的社区(因为它已经帮助了我很多次)。请享用!

我花了很多时间试图让qt5和opencv 2.4.3工作(实际上,他们发布opencv 2.4.4之前我才开始工作)。我一直在寻找不是一些教程,但迄今为止最好的之一是这一个,所以主要的威望和大量的感谢:

http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml

我不能强调本教程多少帮助了我,我写这篇指南作为补充。大多数情况下,我正在为编译器和库提供更新的路径,并描述如何处理我一路上遇到的错误。使用食谱教程的图片和更多的详细说明。

但是正如我暗示的那样,事情并不是无痛的,并且按照指示行事,所以我想我会分享我所做的解决问题的方法,希望这可以帮助某人。

注意:我不完全确定我在一半时间内做了什么,如果有疑问,我只是倾向于跟随我的直觉,所以如果有更多知识和经验的人发现某些不准确的东西,请告诉我和我会纠正它。这就是我所做的,它已经为我制定了,我现在使用C++在qt creator 5中构建openCV程序。

我用下面的路径:

的Qt: C:\ SOFTWARE \ Qt的

OpenCV的解压目录: C:\ SOFTWARE \ OpenCV的双赢

的OpenCV安装目录: c:\ software \ opencvMinGW

次​​

下载:

好了,所以对于初学者来说,下载最新的Qt库和创建者与MinGW的(在我的情况5.0.1)

然后下载OpenCV的,这在我的情况是2.4.4

下载CMake的(此时版本2.8.10.2)

安装:

安装QT(这将ŧ相当一段时间)。

运行openCV exe文件,它将提取您需要的所有文件。如前所述,我使用C:\ software \ opencv-win作为位置来提取它们。

安装CMake。确保选择“为所有用户添加CMake到系统路径”(或类似)。

添加C:\ SOFTWARE \ QT \ 5.0.1 \ mingw47_32 \ BIN(或同等学历),以路径系统变量(如何做到这一点我在开头的链接的指南中所描述的)

重新启动计算机。

编译的OpenCV:

运行cmake贵。 在“源代码在哪里:”你浏览到你解压缩opencv的地方(在我的情况下是C:\ software \ opencv-win),然后在“建立二进制文件的位置”中,输入完成库的位置我使用了c:\ software \ opencvMinGW),然后点击生成并创建目录。在弹出窗口中,选择“MinGW makefiles”和“指定本地编译器”。在C中,对于我来说,路径变成了“C:/software/qt/Tools/MinGW/bin/gcc.exe”,对于C++“C:/ software/qt/Tools/MinGW/bin/g ++。exe”相应地输入你安装Qt的地方。

按配置。

这是对我来说时髦的地方。我得到一个错误说:

"CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Could not find cmake module file:C:/software/opencvMinGWblah/CMakeFiles/2.8.10.2/CMakeCXXCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Could not find cmake module file:C:/software/opencvMinGWblah/CMakeFiles/2.8.10.2/CMakeCCompiler.cmake Configuring incomplete, errors occurred!"

我怀疑这必须做的程序。咄。但如何解决它?

一切都很好:

我选中“高级”按钮,找到进入CMAKE_MAKE_PROGRAM并指定路径“/software/qt/Tools/MinGW/bin/mingw32-make.exe C”解决它结束了。或者是?

检查“分组”按钮,打开WITH类别,选中“WITH_QT”。按配置。 错误的另一大块:

CMake Warning at C:/software/CMake 2.8/share/cmake-2.8/Modules/FindQt4.cmake:615 (message): C:/software/qt/5.0.1/mingw47_32/bin/qmake.exe reported QT_INSTALL_LIBS as "C:/software/qt/5.0.1/mingw47_32/lib" but QtCore could not be found there. Qt is NOT installed correctly for the target build environment. Call Stack (most recent call first):
cmake/OpenCVFindLibsGUI.cmake:8 (find_package) CMakeLists.txt:377 (include)

所以,作为一个可能会从错误信息怀疑,程序无法找到库。 我补救如下。展开categori QT,发现价值QT_QTCORE_LIBRARY_DEBUG,进入

“C:/software/qt/5.0.1/mingw47_32/bin/Qt5Cored.dll”,只是它下面,你会发现QT_QTCORE_LIBRARY_RELEASE,输入“C:/软件/qt/5.0.1/mingw47_32/bin/Qt5Core.dll“现在,你可以按下配置(希望)没有警告,然后你可以按生成,一切都将是花花公子,你可以按照食谱教程。

顺便提一句,这些是我添加到系统变量的附加路径变量。我不知道,也许他们中的一些人没有必要,但是当一切都终于有效时,我不会开始搞乱他们。

C:\software\qt\Tools\MinGW\bin; 
C:\software\Qt\Tools\MinGW; 
C:\software\opencvMinGW\install\bin; 

而且不要忘记,你需要改变DLL的名称来代替244的231,这样的:

LIBS += -LC:\\software\\opencvMinGW\\install\\lib \ 
    -lopencv_core244.dll \ 
    -lopencv_highgui244.dll \ 
    -lopencv_imgproc244.dll \ 
    -lopencv_features2d244.dll \ 
    -lopencv_calib3d244.dll 

我真的希望这可以帮助别人!

+1

我知道这不是一个完美的答案,但如果您在使用opencv和qt 5时遇到问题,请考虑使用qt 4 - 使用本教程很容易将其构建在一起http://docs.opencv.org/doc/ tutorials/introduction/windows_install/windows_install.html一个重要的事情 - cmake将尝试找到qt 5,以便将变量WITH_QT设置为4或在cmake \ OpenCVFindLibsGUI.cmake注释或删除行18-32。 – cyriel 2013-08-04 12:50:50