一、环境条件说明:

操作系统:Windows10 64环境

编译工具:用Qt5.12.12自带的mingw730_64构建

构建对象:编译OpenCV4.1.0的Release 64位和Debug 64位动态链接库

构建工具:CMake中的参数配置

二、cmake-3.20.6中的参数配置

1、按照下图配置好OpenCV4.1.0的源代码目录和构建编译输出目录,然后点击Configure按钮,如下图所示:

2、在弹出的界面中,按照下图配置构建工程类型、gcc和g++编译器路径:

3、在使用CMake编译OpenCV_contrib时遇到的错误,由于源文件未成功下载导致编译失败。通过分析CMake的日志文件CMakeDownloadLog.txt,可手动下载缺失的opencv_ffmpeg.dll并放置于正确位置。OpenCV4.1.0所需要的opencv_ffmpeg.dll和opencv_ffmpeg_64.dll下载网盘地址如下:

链接: https://pan.baidu.com/s/1AWnC_MjuAAWYgwvlHziTqA?pwd=juta 提取码: juta

4、把BUILD_opencv_world、OPENCV_ENABLE_NONFREE选项选中,如下图:

5、分别设置OPENCV_EXTRA_MODULES_PATH为扩展模块的modules目录,如下图:

6、分别开启WITH_QT、WITH_OPENGL、WITH_OPENMP等参数选项,如下图:

7、分别关闭ENABLE_PRECOMPILED_HEADERS、WITH_OPENCL_D3D11_NV、WITH_IPP等参数选项,如下图:

8、在cmake-3.20.6界面中依次搜索example和test,取消例子、测试应用程序的编译。因为在Windows10 64环境下用Qt5.12.12自带的mingw730_64构建编译OpenCV4.1.0时,测试应用test会报编译错误,导致编译OpenCV4.1.0的Debug 64位动态链接库失败。如下图:

9、编译时会提示以下错误:第一个错误提示的是:undefined reference to `cvv:::qtutil::ZoomableImage::updateArea(QRect,double)'之类的,后面还有很多与opencv的cvv模块有关的报错。根据个人编译实践猜测,可能是由于扩展模块中的cvv模块的开启会与BUILD_opencv_world设置有点冲突。参考这篇博文解决:编译opencv 遇到undefined reference to `cvv::XX 错误:https://blog.csdn.net/panmengjiaa/article/details/114693766。可在cmake-3.20.6界面中点击“Add Entry”按照下图添加变量BUILD_opencv_cvv,如下图所示:

10、配置完上述参数之后,再次点击Configure,如果没有错误,可点击Generate,没有错误提示之后就可以依次执行以下目录进行编译和安装:

#使用下面命令开始编译opencv,需要20分钟左右。其中,-j 8 代表多核编译

mingw32-make -j 8

#编译完成之后,输入如下指令安装

mingw32-make install

11、注意按照上述步骤默认编译出来的是OpenCV4.1.0的Release 64位动态链接库。可在cmake-3.20.6界面中搜索CMAKE_BUILD_TYPE,将其设置为Debug,保持其他参数值不变,再次按照前一步中的说明编译OpenCV4.1.0的Debug 64位动态链接库,如下图所示:

----------------------------------------------------------------------------------------------------------------------

详细的步骤可参考以下链接:

1)        三、Qt配置opencv环境(详细,简易)https://download.csdn.net/blog/column/11496363/121620850

2)        qtopencv配置https://blog.51cto.com/u_12929/12714843

3)        Qt5.12配置OpenCV教程https://www.cnblogs.com/ybqjymy/p/18070391

4)        【开发实战】QT5 + OpenCV4开发环境配置应用演示https://zhuanlan.zhihu.com/p/719915221

5)        OpenCV4 + Qt5 开发环境配置合集(C++/Python):https://www.bilibili.com/video/BV1Za4y1v7ra/?vd_source=e39e23ac5a7253752edc9b53b94c0c3d

6)        How to setup Qt and openCV on Windows:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

7)        Qt5.9.7中使用MinGW32编译OpenCV4.1.0过程https://blog.csdn.net/zhoufoxcn/article/details/103737848

8)        OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行https://blog.csdn.net/huihut/article/details/78701814

9)        OpenCV使用CMake和MinGW-w64的编译安装https://blog.csdn.net/huihut/article/details/81317102

10)     【完美解决】OpenCVError: Insufficient memory (Failed to allocate xxx bytes) 报错的辛酸踩坑史https://blog.csdn.net/qq_52949697/article/details/123033368

11)     opencv库不支持qt qt配置opencv出错https://blog.51cto.com/u_12192/10896803

12)     minGW编译opencv4.1.0时  undefined reference to to cvv::view::MatchVIew

13)     undefined reference to `cvv:::qtutil::ZoomableImage::updateArea(QRect,double)'之类的,后面还有很多与opencv的cvv模块有关的报错。解决办法参考:编译opencv 遇到undefined reference to `cvv::XX 错误:https://blog.csdn.net/panmengjiaa/article/details/114693766

Windows10 64环境下用Qt5.12.12自带的mingw730_64构建编译OpenCV4.1.0时cmake-3.20.6中的参数配置的更多相关文章

  1. Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持

    Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持 GitHub - tensorflow/tensorflow: Computation using data flo ...

  2. MinGW下编译curl-7.60.0时, 发生ERROR_FILE_NOT_FOUND undeclared

    在编译curl-7.60.0时, 遇到ERROR_FILE_NOT_FOUND undeclared 这个情况, 就没法编译成功!! 下载了以往的版本, 发现是从curl-7.59.0版本开始才有 t ...

  3. windows7环境下 硬盘安装ubuntu 12.04 server版

    之前一直用windows7环境下的虚拟机装的操作系统,但有时候在切换系统时老是死机,还是装一个硬盘版的ubuntu 12.04 server吧 先说一下本人的环境吧:windows 7 32位专业版+ ...

  4. 2 pygraphviz在windows10 64位下的安装问题(反斜杠的血案)

    可以负责任的说,这篇文档是windows10安装pygraphviz中,在中文技术网站中最新的文档,没有之一.是自己完全结合各种问题,包括调试等,总结出来的. 问题来源:主要是可视化RvNN网络的树结 ...

  5. Windows环境下使用python 3.x自带的CGI服务器测试cgi脚本--Python

    1.在桌面上新建一个文件夹作为服务器目录文件夹(文件夹名称自定义,文件夹位置自定义),在www文件下再建一个文件夹,文件夹名为“cgi-bin”,须是这个文件名,其他试过不行(原因暂时未知)

  6. linux环境下安装git(采用github下载git源码编译)

    [目的]:linux环境下 安装配置git成功 [准备条件]linux系统,git包 1.先行下载git包 -- 从github上https://github.com/git/git/releases ...

  7. 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置

    为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...

  8. windows10 64位下安装oracle 11g和PL/SQL Developer

    一.材料准备: oracle11g安装包(64位) oracle11g客户端(32位) PL\SQL Developer安装包(32位) 1.下载Oracle 11g链接:http://www.ora ...

  9. Nexus6-刷LineageOS系统(Windows10处理环境下)

    0.观前注意 本方法不一定保证正确,我只是通过了此方法进入了手机,但是仍然有少部分apk无法安装(比如v2rayNG),但是正常的浏览器和qq是能够正常运行的. 1.刷机准备 一台Nexus6手机(能 ...

  10. Windows10 + VS2015 环境下对gdal2.0.1进行64bit编译小结

    这是官方给出的编译指导,但是在实践过程中有几点仍然需要特别注意. Tip 1:不要使用默认的"VS开发人员命令提示"工具,使用该工具会遭遇如下的错误: 正在创建库 gdal_i.l ...

随机推荐

  1. feign调用其他服务解码错误

    1.在使用A服务通过feign调用B服务时报错: feign.codec.DecodeException: Error while extracting response for type [clas ...

  2. Stream流,集合与基本数组的相互转换

    Arrays类的Api stream()方法传入数组,返回对应的stream流. Collection集合的Api: stream()不传参数,返回Stream流. 有了上述Api可以完成如下转换.. ...

  3. 反思---树上LIS

    反思---树上LIS 题目描述 给你一棵 n个节点的树,树的每个节点上都有一个值 a[i] . 现在要您求出从 1 号点到 i 号点的最短路径上最长上升子序列的长度. 就是单调栈优化+dfs回溯 对比 ...

  4. 一些有用的shell命令组合

    1.找出Linux系统中磁盘占用最大的10个文件 1)CentOS7 和 busybox 1.30.1 验证可用 find / -type f -print0 | xargs -0 du | sort ...

  5. 记录一个opencv的imread方法无法读取成功的问题,【设计到visual studio和静态库(lib)匹配的问题】

    一.为什么会遇到这个问题 公司需要对多图进行拼接,经过多番查找发现了OpenStitching这个库.可以实现多图拼接.在python段尝试了之后感觉效果不错,所以使用Visual Studio进行C ...

  6. cmu15545笔记-查询执行(Query Excution)

    目录 执行模型 Iterator Model Materialization Model Vectoriazation Model 对比 数据访问方式 Sequential Scan Index Sc ...

  7. Flink CDC 实时同步 MySQL

    Flink CDC 系列文章 Flink CDC 实时同步 MySQL Flink CDC 实时同步 Oracle 准备工作 MySQL 数据库(version: 5.7.25),注意,MySQL 数 ...

  8. po文件如何转为excel

    其实.po文件是一种翻译文件格式,类似于 key - value的列表 可以理解为两列,由于我们想把这个po数据读出来放入 excel.因为大部分人看不懂po文件的.虽然我们可以借助工具 poedit ...

  9. OSG开发笔记(三十四): OsgUtil::Simplifier:简化几何体,提升显示性能和渲染效率

    前言   对于一些较大的图形,会出现显示卡顿和渲染缓慢的问题,这时候就要使用到osgUtil::Simplifier简化器,来对其进行简化.   Demo            osgUtil   o ...

  10. (Redis基础教程之十二) 如何解决Redis中的故障

    介绍 Redis是一个开源的内存中键值数据存储.它带有几个命令,可以帮助您进行故障排除和调试.由于Redis具有内存中的键值存储的性质,因此其中许多命令都集中在内存管理上,但是还有一些其他命令对于概述 ...