Qt Creator(mingw)下编译和配置OpenCV

版本说明

Qt Creator: 4.0.3 Based onQt 5.6.1
下载资源名称qt-opensource-windows-x86-mingw492-5.6.3.exe

OpenCV版本3.2.0
之前尝试新版本的3.3.1,但在编译过程中出现了没能解决的问题

CMake版本3.4.3

在编译和配置前,现将上述资源下载并安装。

编译过程

OpenCV下载解压后得到如下的文件。其中build文件中是头文件和各种编译器编译好的库文件,但没有mingw版本的库文件,所以就需要用到第二个文件source了,source文件中放的是opencv的源代码和CMakeLists文件等,我需要用mingw的编译器和这些源码编译出库文件。
Qt Creator(mingw)下编译和配置OpenCV

打开CMake,设置opencv源文件路径和输出的目录。在源文件同级目录下新建cmake-build文件夹来作为输出目录。选择如下图所示:
Qt Creator(mingw)下编译和配置OpenCV

点击左下角的configure配置按钮,来配置编译器信息。第一步配置如下图所示Qt Creator(mingw)下编译和配置OpenCV

点击下一步,C语言配置gcc编译器,C++配置g++编译器,选择的路径跟Qt的安装路径有关,我的Qt5.6安装在了D盘的Qt文件夹下,到Tools工具文件夹下找到相关的编译器,如下图所示
Qt Creator(mingw)下编译和配置OpenCV

点击finish完成按钮。弹出警告窗口,如下所示。点击ok
Qt Creator(mingw)下编译和配置OpenCV

可以看到下方的红色警告提示,CMAKE_MAKE_PROGRAM没有设置,所以需要去设置该变量。
Qt Creator(mingw)下编译和配置OpenCV
点击Add_Entry按钮,添加该路径变量。该路径变量指向了mingw编译器路径,所以依然是到Qt的安装目录Tools下去找mingw编译器,如图所示,点击确定。
Qt Creator(mingw)下编译和配置OpenCV
Qt Creator(mingw)下编译和配置OpenCV

再次点击configure,发现又报错,点击ok。
Qt Creator(mingw)下编译和配置OpenCV

勾选Advanced后发现仍然有CMAKE_MAKE_PROGRAM变量没有找到
Qt Creator(mingw)下编译和配置OpenCV
双击该变量第二栏,选择编译器如图。
Qt Creator(mingw)下编译和配置OpenCV

点击configure等待结束。结束后找到WITH_QT勾选起来,再次点击Configure。得到如下红色高亮区域
Qt Creator(mingw)下编译和配置OpenCV
显示说明,默认选择的是C盘下老版本5.2的Qt文件,需要更改目录到安装在D盘下的5.6的相应目录
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5Concurrent
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5Core
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5Gui
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5OpenGL
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5Test
D:\Qt\Qt5.6.3\5.6.3\mingw49_32\lib\cmake\Qt5Widgets
Qt Creator(mingw)下编译和配置OpenCV
除此意外还有一些选项要修改:
找到ENABLE_PRECOMPILED_HEADERS变量,取消勾选Qt Creator(mingw)下编译和配置OpenCV
找到BUILD_opencv_python3变量,取消勾选
Qt Creator(mingw)下编译和配置OpenCV

点击configure,没有报错后点击Generate生成Makefile文件。
Qt Creator(mingw)下编译和配置OpenCV

进入输出目录cmake_build,按住shift键右击,选择在此处打开命令窗口,进入cmd。键入mingw32-make就会开始编译文件了,如果没有识别出该命令,应该是Qt的mingw-32.exe编译器所在的bin目录没有添加到环境变量,添加一下环境变量,我这边已经添加过了,如下图所示
Qt Creator(mingw)下编译和配置OpenCV
接着在cmd中键入mingw32-make,如下图所示,开始编译了,耐心等待完成
Qt Creator(mingw)下编译和配置OpenCV
Qt Creator(mingw)下编译和配置OpenCV

接着键入mingw32-make install,直到完成。
Qt Creator(mingw)下编译和配置OpenCV
Qt Creator(mingw)下编译和配置OpenCV
完成后进入cmake-build文件夹,其中的install文件夹下就是我们想要的东西了,include文件夹中是所有的头文件,x86中的mingw下,bin是编译出来的动态链接库,lib是编译出来的静态链接库
Qt Creator(mingw)下编译和配置OpenCV

配置环境

将Install文件夹中include文件夹、bin文件夹和lib文件夹复制出来,接着在Qt新建项目的pro文件中配置工程,如下图所示:
Qt Creator(mingw)下编译和配置OpenCV
编译程序没有问题,但运行时报错:
Qt Creator(mingw)下编译和配置OpenCV
将引用的静态链接库改成动态链接库就没有问题了,重新配置如下
Qt Creator(mingw)下编译和配置OpenCV
程序成功跑了起来。后来发现lib文件夹只有几M应该是还有文件没引用全。