【QT/OpenCV】Qt创建并发布OpenCV dll项目

本文详细介绍了如何基于QT5.12.2和OpenCV4.5.1创建DLL项目,包括选择项目类型、配置编译器、设置.pro文件以及添加测试接口。在DLL动态库测试阶段,强调了库文件与头文件需与测试项目的exe在同一目录下,否则会导致运行时错误。最后,提到了处理程序崩溃的方法和验证接口调用的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01、开发版本

以下所有源码与软件都是基于下面的版本。

1、QT: Based on Qt 5.12.2 (MSVC 2017, 32 bit)
2、OpenCV: OpenCV – 4.5.1

tips: OpenCV的版本不一定要跟我一样,但是版本之间可能会有些接口或者使用方法已经被更改,会导致使用后期关于我自己写的OpenCV的文章会有一些地方不能通用,望悉知!

02、QT创建dll项目

  1. 打开QtQcreator软件,选择创建一个新项目New Project

在这里插入图片描述
2. 选择library->C++库->Choose…

在这里插入图片描述 3. 选择共享库->添加库项目的名称->继续下一步

在这里插入图片描述
4. 勾选Select all kits->Desktop Qt 5.12.3 MinGW 64-bit (这里编译器根据自己的来即可)

在这里插入图片描述
5. 选择模块项->继续下一步

在这里插入图片描述
6. 然后确认项目名、选择代码管理之后完成dll动态库的创建。

03、dll项目配置说明

这里贴上一张按照上述创建项目之后的最终截图如下:
在这里插入图片描述

  1. 第一步:配置.pro文件
    在这里插入图片描述

tips: OpenCV的配置及两个目录的由来请参考其他博主的QT配置OpenCV的博客,很基础的东西,这里不做介绍了。

  1. 第二步:添加几个接口作为测试函数。
    在这里插入图片描述
  2. 关于_global.h文件介绍*

Q_DECL_IMPORT宏标记用于共享库导出的符号,如不想使用此opencvcameralib_global.h文件,只需要 将 4~10行拷贝到OpenCVCameraLib.h中即可。

如下图:

在这里插入图片描述
如果不想使用这个文件,可以删掉,只需要将红框的内容复制到项目名.h的头文件中即可。

04、dll动态库测试

  1. 新建一个Qt Widgets Application项目
    在这里插入图片描述

  2. 重命名项目名称
    在这里插入图片描述

  3. 选择项目配置版本
    在这里插入图片描述

  4. 修改类信息,默认MainWindow即可
    在这里插入图片描述

  5. 选择版本控制,有git就使用git
    在这里插入图片描述
    创建好的界面和.pro文件如下:
    在这里插入图片描述

tips:这里.pro中还配置了OpenCV的配置是因为我之前用这个项目做图形测试,所以保留了这个项目的部分接口,理论来说,用库的方式调用,这里只需要包含
LIBS += C:\Users\10125\Documents\OpenCV_CameraDemo\OpenCVCameraLib.dll
这里路径是库的生成路径,即Relese目录下的dll库路径。
注意: dll库和.h文件都要放入测试文件(实际调用项目)的exe文件同级,不然会报编译错误,即程序crashed。

错误如下:

11:58:40: Starting C:\Users\10125\Documents\build-OpenCV_CameraDemo-Desktop_Qt_5_12_3_MinGW_64_bit-Release\release\OpenCV_CameraDemo.exe ...
11:58:43: 程序异常结束。
11:58:43: The process was ended forcefully.
11:58:43: C:/Users/10125/Documents/build-OpenCV_CameraDemo-Desktop_Qt_5_12_3_MinGW_64_bit-Release/release/OpenCV_CameraDemo.exe crashed.

然后验证接口的调用是否OK即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cain Xcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值