在安装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版本,下载后安装。

安装完成后,在环境变量中添加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

OpenCV+QT5在Window下的环境配置记录的更多相关文章

  1. php在window下的环境配置(VC9)

    配置PHP5:  1. 配置PHP5.3.3,打开php安装目录(笔者是D:\php\php5)可以看到目录下有两个这样的文件php.ini-    development和php.ini-produ ...

  2. Window下PHP环境配置使用Redis总结

    什么是Redis? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.它和Memcached类似,它支持存储的 ...

  3. Qt在window下的环境变量PATH的配置

    Qt在window下的环境变量PATH的配置 路劲: C:\Qt\Qt5.6.0\5.6\mingw49_32\bin C:\Qt\Qt5.6.0\Tools\mingw492_32\bin 发布Qt ...

  4. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  5. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  6. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  7. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  8. Window下mysql环境配置问题整理

    Window下mysql环境配置问题整理 参考如下链接. 无需安装解压版mysql包 创建选项配置 首次启动服务 用mysqld初始化目录 安装后设置和测试 启动服务错误信息 管理员模式打开cmd m ...

  9. Window 下 MySQL 环境的安装

    Window 下 MySQL 环境的安装 简介: MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Manageme ...

随机推荐

  1. 解决Js中的resize事件执行两次的方法

    问题: 页面自适应的时候需要用到js的resize事件,但在执行过程中发现只要触发resize事件就会执行2次 原生js: window.onresize = function(){ console. ...

  2. JAVA 异常和异常处理

    目录 一.异常 1.基本概念 2.异常体系图 3.五大运行时异常 4.编译异常 二.异常处理 1.异常处理的方式 1.1try-catch异常处理 注意事项 课堂练习题 1.2throws异常处理 注 ...

  3. JZ-035-数组中的逆序对

    数组中的逆序对 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即 ...

  4. SQL Server--频繁建立连接和断开连接

    使用数据库时,不建议一直与数据库保持连接,最好用时连接用完断开连接. 我的C#程序中采用"用时连接用完断开连接"的方式: 之前是C#程序调用本地数据库,没遇到问题: 后来改为C#程 ...

  5. php 23种设计模型 - 抽象工厂模式

    抽象工厂模式(AbstractFactory) 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创 ...

  6. Python 递归函数返回值为 None 的解决办法

    在使用 Python 开发的过程中,避免不了会用到递归函数.但递归函数的返回值有时会出现意想不到的情况. 下面来举一个例子: >>> def fun(i): ... i += 1 . ...

  7. LGP4199题解

    因为没有简化题意一直没去做,直到今天讲这道题才口胡出来 要求对称,很明显这样一个"子序列"的对称中心只可能有一个,那么先枚举这个对称中心. 然后我们需要判断两个位置是否相同.看上去 ...

  8. Spring系列26:Spring AOP 通知与顺序详解

    本文内容 如何声明通知 如何传递参数到通知方法中 多种通知多个切面的通知顺序 多个切面通知的顺序源码分析与图解 声明通知 Spring中有5种通知,通过对应的注解来声明: @BeforeBefore ...

  9. Java基础—构造方法

    1.构造方法概述 构造方法是一种特殊的方法,用来创建对象,当我们不定义时,系统会默认给出一个无参构造方法:一旦我们定义了任意的构造方法,系统就不会给出默认的无参构造方法 格式如下: public ca ...

  10. Asp.net Core Filter过滤器异常处理

    本文旨在: 1 继承ExceptionFilterAttribute,重写Override OnException(ExceptionContext context)处理异常 2 在.netCore中 ...