基于QT5+OpenCV+OpenVINO C++的应用打包过程

引子
我用qt c++写了一个yolov5模型推理演示应用,主要包括功能有:
yolov5+ opencv4.5.4 dnn推理演示yolov5+openvino2022.1推理演示yolov5+onnxruntime 推理演示上述三个都cpu版本的推理演示,然后我最终完成gui演示程序如下图:
支持一些显示选项,例如fps计算显示,类别显示设置等。后来我又加上了yolox的推理演示,跟faster-rcnn与mask-rcnn的onnxruntime推理演示。
今天有个哥们想要测试程序,于是我就开始了使用qt自带的打包工具windeployqt.exe 开始了一通如猛虎操作,完成了打包!远程发到他的没有开发环境电脑,发现可以了。
打包过程
01拷贝第三方依赖dll文件
首先把所有依赖的dll文件全部拷贝到项目编译生成的release目录下,我的release目录是:
d:qtprojectsuild-yolov5_demo-desktop_qt_5_12_12_msvc2017_64bit-releaserelease这些dll主要是第三方的库,具体我的是opencv4.5.4相关dll、openvino支持必须的相关dll文件,onnxruntiem相关的dll文件,一通猛拷贝,就可以啦!  
02windeployqt.exe生成打包
这个时候一定要清楚你的编译是基于mingw的编译器还是vs的编译器,这点太重要了,以我的为例:在qt的安装目录下面有两个目录
mingw73_64msvc2017_64如果工程是mingw编译的一定要选择 第一个目录下的windeployqt.exe,如果是vs编译的,比如我是vs2017的,就一定要选择第二个目录下的windeployqt.exe 工具来打包,否则打包完以后就无法运行!  
确定了windeployqt.exe工具之后,打开cmd到windeployqt.exe工具所在目录,如下图:
然后运行命令行:
windeployqt.exe d:qtprojectsuild-yolov5_demo-desktop_qt_5_12_12_msvc2017_64bit-releaseeleaseyolov5_demo.exe –release  
这句话的意思是打包成release的,因为我工程构建是基于release的,这点也太重要了,你的工程构建跟发布打包必须debug-debug 或者release-release,不然肯定无法启动。   其中--release表示打包为release模式。 成功运行之后显现如下:
这样就成功了!
03zip打包发布
删去release目录下所有的cpp文件跟编译生成的中间文件,然后选择全部文件zip打包就好啦,这样就完成了打包。
最后特别说明:
打包openvino2022的时候除了需要把那些dll文件全部拷贝过去,一定记得把plugin.xml文件(来自安装好的openvino2022文件夹下)也拷贝过去,不然就会一直无法启动程序!!!
就是上图红框的文件,打包之后,我本机运行:


未来的AI开发将注重每个环节的安全和风险管理
粉尘采样器和检测仪之间的区别是什么
宁德时代将投50亿美元在印尼建锂电池厂
关于触摸屏农药残留检测仪的介绍
小米MIX2设计图曝光:全面屏时代来袭!小米MIX2撞脸iPhone8,真机长这样,买五千不贵
基于QT5+OpenCV+OpenVINO C++的应用打包过程
面向电动汽车充电基础设施的储能系统
适于高电流脉冲应用的3.6V锂电池
变压器有载自动调压控制系统简介
DCS系统的组态、步骤和基本思路
三大运营商相继发布2020年11月的主要运营数据
关于电磁流量计的工作原理
信号链基础知识:高速数模转换器的数字特性
三星CMOS芯片大涨20%,OV受益 索尼力证:并未缺货涨价
保持数据中心稳定运行,功耗是一大挑战
山东移动打造出了全国首条全程实现5G网络全覆盖的高铁线路
苹果新iPad抢先看 本周五八时首发销售
各大手机品牌“厮杀”激烈,华为六款5G单品撑起半壁江山
新华网专访|网存联动,全方位构建防勒索安全防线
遗留软件基础架构可能会损害安全性和变革能力