QT+Opencv 程序打包发布(超级详细版+常见错误解决)

QT+Opencv 程序打包发布(超级详细版+常见错误解决)

我的上一篇文章基于Qt+Opencv写了一个阈值提取工具,在打包发布过程中了很多坑,所以写下这篇博文帮助大家在学习的过程中有效避坑节省时间。
发布过程中一共要用到3个工具:

  1. windeployqt(这是qt自带的一个依赖项添加工具)
  2. == hap-depends==(一个几百k的小工具,用来查看你的程序用到了那些依赖项)
  3. Enigma Virtual Box(一个打包工具,用来将程序和所有依赖项打包)
    准备好这些工具后就可以开始了:

第一步:在Qt creator中对项目进行Release,获取 ***.exe(release版可执行文件)

用Qt creator 打开你的项目文件,然后release,生产release版的可执行文件,同时查看你的编译工具(这一步很重要,我就是忽略了这一步才浪费了很多时间,这也是很多csdn博主忽略的一步),后续需要用统一编译器才不会出错。QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第1张图片

第二步:利用windeployqt在文件夹中添加依赖项

  1. 首先在桌面上新建一个文件夹,注意名字不要用中文,本文文件命名test
  2. 将你的release里面的==.exe==文件还有你程序里面用到的图片文件夹放在test中
    QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第2张图片
  3. 从Windows图标找到Qt软件,如下图所示,本人电脑里只有1个编译工具,所以直接打开使用,如果你电脑里面有很多版本的话一定要选择和第一步3里面一样的编译器QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第3张图片
  4. 打开后进入你前面文件夹,然后用windeployqt 进行编译,进入对应文件后输入:
// An highlighted block
windeplotqt untitled2.exe

如下图所示:QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第4张图片
运行后的文件件添加了很多依赖项,如下图所示:
QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第5张图片
到这里如果你没有引用其他的依赖性的话(比如opencv等),那你文件夹里面得.exe文件可以运行了。

第三步:利用hap-depends查找你程序用到的依赖项,然后添加在test中

直接把.exe 拖到hap-depends中即可(在hap-depends中只显示依赖项的一级目录),如下图所示:
QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第6张图片
可以看到我们使用了opencv的两个依赖项,分别是libopencv_core249.dlllibopencv_imgproc249.dll。下一步把这些依赖从你的opncvbuild(也就是你在对Qt配置opencv时用cmake对opencv编译之后形成的文件)在bin中将这两个依赖项加入到test中就可以了,如下图所示:
QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第7张图片
到这里,就可以测试.exe能不能运行了,如果你按照上面步骤一步步来的话,肯定是没有问题的。test里面的 .exe就可以直接运行了。

第四步:利用Enigma Virtual Box对文件夹进行打包(就是把整个文件夹打包成一个.exe文件)

打开Enigma Virtual Box:
QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第8张图片

  1. 点集Browse选择test里面的.exe文件
  2. 点击Add将整个test文件加进去
  3. 点击Files Options
    QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第9张图片
  4. 点击 Process,运行完成后点击run就可以运行程序了,同时你的test文件夹里面多了一个untitled2_boxed.exe文件,这个就可以直接运行了。
    QT+Opencv 程序打包发布(超级详细版+常见错误解决)_第10张图片
    到这里就大功告成了,如果对你有用的话,不要吝惜送我一个赞哦。

你可能感兴趣的:(opencv项目,opencv,qt,深度学习,tensorflow)