OpenCV+QT5在Window下的环境配置记录

在安装OpenCV时最需要注意的是,OpenCV库,也就是我们需要的dll和动态库需要我们使用CMake来生成。

虽然在官网上下载得到的文件中已经包含了库文件和.h等头文件,但是在具体开发中编译器编译后的源文件都会和库文件去进行链接。

这就导致不同的编译器可能需要不同的库。所以,下载得到源文件之后,要用指定的编译器重新编译。

0. 需要的工具

  • Qt Creator
  • OpenCV
  • CMake
  • cmd

1. Qt Creator安装

这里Qt Creator的安装不在赘述,由于Qt提供的在线下载器太慢,可以直接去qt的离线下载界面下载,使用迅雷会比较快。详细操作可以参考这里。笔者使用的是5.9.0版本。

注意,这里需要在环境变量中的Path变量下添加Qt\Qt5.9.0\Tools\mingwxx_xx\bin路径。例如我在这里添加了F:\Qt\Qt5.9.0\Tools\mingw530_32\bin,否则后面的CMake可能在Configure过后没有对应的选项!

2. OpenCV的下载安装

OpenCV也可以直接在官网下载,这里选择对应的Windows版本,下载后安装。我这里一开始使用4.5.5在cmd界面编译时候报错,后面使用的是3.2.0。

安装完成后,在环境变量中添加Path变量,我添加的地址为F:\environment\opencv\build\bin。

3. CMake的下载使用

CMake可以直接在官网下载,注意安装的是带有界面的cmake-3.6.1-win64-x64.msi。

安装后打开cmake-gui.exe,Browse Source下选择安装的opencv下的sources文件夹,Browse Build可在opencv下新建一个release目录并选择,完整后点击左下角的Configure,选择MinGW Makefiles。

点击后CMake开始运行,过一段时间,中间会出现许多红色的选项,勾选WITH_OPENGL和WITH_QT,再次点击Configure。

运行完毕后可能还会出现部分红色选项,分别以下表选择对应项目。(有可能只有部分)

Name Value
QT_QMAKE_EXECUTABLE …/Qt/Qt5.3.1/5.3/mingw482_32/bin/qmake.exe
QT_MKSPECS_DIR …/Qt/Qt5.3.1/5.3/mingw482_32/mkspecs
QT_QTCORE_LIBRARY_DEBUG …/Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Cored.dll
QT_QTCORE_LIBRARY_RELEAS …/Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Core.dll
QT_QTCORE_INCLUDE_DIR …/Qt/Qt5.3.1/5.3/mingw482_32/include/QtCore/5.3.1/QtCore
Qt5_DIR …/Qt/Qt5.3.1

注意:如果你在安装Qt5后,没有给Qt5添加环境变量的话,那么在这一步,CMake软件是不会找到这些和Qt5相关的项的。

配置完成后再次Configure,没有红色选项,CMAKE_BUILD_TYPE选择Release类型,再次点击Configure后没有报错,点击Generate

在Generate结束后需要使用cmd来最后编译生成我们需要的动态dll库。

4. 在cmd中使用mingw32-make命令构建dll库

打开cmd,使用cd命令进入我们刚才在CMake里Browse Build选项中选择的目录,笔者的为F:\environment\opencv\release。(这里可能cd不进去,Windows下切换磁盘直接输入磁盘符+冒号就可以切换到其他盘了)。

f:
cd F:\environment\opencv\release
mingw32-make

等待构建成功后,该目录下的include目录和lib目录下就生成了我们需要的库了。

5. 在Qt Creator的.pro文件中添加配置

在你需要使用OpenCV的项目的.pro文件中添加配置

INCLUDEPATH += E:\opencv-4.0.1-Sources\opencv-build\install\include
LIBS += E:\opencv-4.0.1-Sources\opencv-build\lib\libopencv_*.a

页面下部广告