windows下QT如何集成OpenCV

说明

我在windows下使用QT Creator12创建的CMake项目,需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的,所以无法使用VS studio版本的dll库。

为什么vs的版本不能用

我安装QT选择的是MinGW版本,本地编译QT工程只能选择MinGW编译方式。选择vs的两个版本无法构建。

在这里插入图片描述

根据参考资料里《mingw如何链接vs方式编译生成的动态库?》中的说法,vs的c++ abi是stdcall, 而mingw使用的调用方式是cdecl。也就是说两个编译器的c++ abi不兼容的,故而无法识别对方导出的符号完成链接。

我一开始下载的opencv官方预编译的包,结果一直显示“error: undefined reference to”这样的错误。后来换了MinGW的Opencv库就可以了。

如何下载MinGW编译的Opencv库

首先可以下代码本地编译,如果不想这么麻烦,可以从这里下载:github-huihut/OpenCV-MinGW-Build

如何将OpenCV集成到Qt的工程

我是在windows下创建的Cmake类型的Qt工程。

添加头文件

解压上面下载的Opencv库的包。将include\opencv2目录复制到自己的QT源码目录下
在这里插入图片描述

然后在“Header Files”菜单右击,点“Add Existing Directory”, 选择刚刚复制过来的opencv2目录。
在这里插入图片描述
然后在CmakeLists.txt中添加opencv2目录的父目录:

target_include_directories (TextFinder PRIVATE ./sdk/inc)
添加库

在解压opencv后找到x64\mingw\bin目录,复制需要的dll模块到自己的工程下,如果没有特别需要,复制三个最常用的就够了。我是复制到我的工程下的sdk目录,复制后如下:
在这里插入图片描述
然后在CmakeLists.txt中添加这三个dll的父目录:

target_link_directories(TextFinder PRIVATE ./sdk/)

VS版本的OpenCV预编译库如何下载

我没用,这里仅仅记录下。下载地址在:
https://opencv.org/releases/

选择windows版下载
在这里插入图片描述

解压开就有一个build目录,下面有一个opencv_world490.dll。
这个是包含了所有opencv模块的单一库,你需要的就是它。

参考资料Cmake

MinGW编译的Opencv库下载地址:github-huihut/OpenCV-MinGW-Build

mingw如何链接vs方式编译生成的动态库?

How to setup Qt and openCV on Windows

Windows上Qt配置OpenCV(最简单版本无需自己编译-避坑必看)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/291216.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Triton推理服务器部署YOLOv8实战

课程链接:Triton推理服务器部署YOLOv8实战_在线视频教程-CSDN程序员研修院 Triton Inference Server(Triton 推理服务器)是一个高性能、灵活、可扩展的推理服务器,支持多种机器学习框架(PyTorch、ONNX等)和…

服务器被CC攻击之后怎么办?

1.取消域名绑定取消域名绑定后Web服务器的CPU能够马上恢复正常状态,通过IP进行访问连接一切正常。但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对IP的CC攻击它是无效的,就算更换域名攻…

计算机毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 大数据毕业设计 机器学习 深度学习 人工智能

学院(全称): 专业(全称): 姓名 学号 年级 班级 设计(论文) 题目 基于Spark的高考志愿推荐系统设计与实现 指导教师姓名 职称 拟…

实时语音识别(Python+HTML实战)

项目下载地址:FunASR 1 安装库文件 项目提示所需要下载的库文件:pip install -U funasr 和 pip install modelscope 运行过程中,我发现还需要下载以下库文件才能正常运行: 下载:pip install websockets,pi…

Excel数据分析-----快捷键

智能拆分 1、先将第一行的数据手动拆分出来。 2、在拆分出来的列上面按住ctrlE,就可以自动向下填充了 自动生成下拉列表 alt向下箭头 插入批注 shiftf2 如何在批注中进行查找 ctrlf打开查找窗口。 快速删除批注 ctrlG 右键删除批注 快速美化表格 ctr…

常见的Nginx+Redis+MQ+DB架构设计

三高,复杂的架构 SQRS CAP 缓存,限流 【Redis,缓存】 cache-aside 缓存cache:数据源的副本 store 1. Read/Write Through Pattern 读写穿透模式 redis:放当前在线用户,热点数据

Kubernetes-running app on kube

Docker 安装Docker 首先,您需要在Linux机器上安装Docker。如果您不使用Linux,则需要启动一个Linux虚拟机(VM)并在该虚拟机中运行Docker。如果你使用的是Mac或Windows系统,并按照指令安装Docker, Docker将为你建立一个虚拟机,并在…

使用mysql官网软件包安装mysql

确定你的操作系统,我的是Centos myqsl 所有安装包的地址:https://repo.mysql.com/yum/ 如果你是使用rpm安装你可以到对应的版本里面找到对应的包。 mysql 发行包的地址:http://repo.mysql.com/ 在这里你可以找到对应的发布包安装。 这里使用y…

AJAX(一):初识AJAX、http协议、配置环境、发送AJAX请求、请求时的问题

一、什么是AJAX 1.AJAX 就是异步的JS和XML。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 2.XML 可扩展标记语言。XML被设计用来传输和…

爬虫逆向实战(38)-某空气质量平台(反调试,AES,DES,MD5)

一、数据接口分析 主页地址:某空气质量平台 1、抓包 (1) 反调试 该网站对鼠标右击以及F12进行了监听并拦截 虽然该网站无法打开Chrome控制台,导致我们无法抓包,但是道高一尺魔高一丈。既然我们无法在打开该网站的时候打开Chrome控制台&…

在Windows上交叉编译STM32(环境搭建)

在Windows上交叉编译STM32 Keil 虽然好用,但是是收费的,不想破解怎么办~ 使用交叉编译工具! 交叉编译工具下载 官方交叉编译工具下载连接 下载解压好后将 bin 目录写入 PATH, 使用命令行检测是否安装成功。 Windows 安装 make …

RN在android/ios手机剪切图片的操作

之前写过一个React Native调用摄像头画面及拍照和保存图片到相册全流程但是这个仅限于调用摄像头拍照并保存图片,今天再写一个版本的操作,这个博客目前实现的有三点操作: 调用摄像头拍照对照片进行剪切从相册选取图片 功能上面来说有两点: 点击按钮可以对摄像头进行拍照,拍完照…

Etcd 基本入门

1:什么是 Etcd ? Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于 Go 语言实现。 名字由来,它源于两个方面,…

#include<初见c语言之指针总结>

第一小节: #include<初见C语言之指针(1)>-CSDN博客 #add<初见C语言之指针(1)>-CSDN博客 第二小节: #include<初见c语言之指针…

redis集群配置(精华版):哨兵模式

哨兵模式 概念单机单个哨兵多哨兵模式 动手实操1、环境准备2、配置sentinel.conf配置文件3、启动哨兵&测试4、SpringBoot测试哨兵模式故障转移功能 概念 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这…

苹果Find My产品需求增长迅速,伦茨科技ST17H6x芯片供货充足

苹果的Find My功能使得用户可以轻松查找iPhone、Mac、AirPods以及Apple Watch等设备。如今Find My还进入了耳机、充电宝、箱包、电动车、保温杯等多个行业。苹果发布AirTag发布以来,大家都更加注重物品的防丢,苹果的 Find My 就可以查找 iPhone、Mac、Ai…

04-JavaScript函数

函数(重点) 1.为什么使用函数? 用函数来解决代码重用的问题。 2.函数的意义 函数其实就是封装,把可以重复使用的代码放到函数中,如果需要多次使用同一段代码,就可以把封装成一个函数。这样的话,在你需…

大数据-hive,初步了解

1. Hive是什么 Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。 简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapRedu…

docker环境配置过程中的常见问题

1、pull镜像问题 docker pull jenkins/jenkins:lts Using default tag: latest Trying to pull repository docker.io/library/centos ... Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/token?scoperepository%3Alibr…

keil调试仿真退出卡死现象解决办法

更新到keil5版本V5.20之后,目前一直到V5.29版本,都存在一个问题: 退出调试模式时,有可能会卡死! 此时需要在任务管理器中结束掉进程才能强制关闭keil工程。 网上查找了很多资料,一种是退出仿真时不能有断…