教你使用windeployqt工具来进行Qt的打包发布

 Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。

因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

 

问题的提出

 

既然是要发布自己的程序,那么就需要,在Release中编译运行。具体方法如下图所示。

1.点击qt界面左下角的图标;

2.选择Release;

3.点击编译运行即可;

 

 

生成的程序运行正常之后,找到项目的生成目录。比如,项目源码路径:
D:\OutPutResult\QtWorkPlace\DiyName
它的项目生成目录是:
D:\OutPutResult\QtWorkPlace\build-DiyName-Desktop_Qt_5_8_0_MinGW_32bit-Release

 

我们可以发现,此时点击.exe文件是会出问题的,解决办法如下。

 

 

使用windeployqt工具,进行打包发布

1.首先进入上图中这个文件夹,在里面,找到 DiyName.exe,将这个.exe 复制到一个新的单独的文件夹里用于发布,比如存到 :
D:\OutFaBu 文件夹里面。

 

此时,这个文件只一个有刚刚从release文件夹下,复制过来的.exe文件。

 

 

 

2.以官方 Qt 5.8.0+MinGW 开发环境为例,
从开始菜单--》Qt 5.8.0--》5.8--》MinGW5.3.0 (32-bit)--》Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)

可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。

 

 

3.然后从开始菜单打开 Qt 命令行,输入命令 :
cd /d D:\OutFaBu
然后使用 windeployqt 工具命令:
windeployqt DiyName.exe

注意】D:\OutFaBu和DiyName.exe都是本人自己创建和生成的文件,读者根据自己情况自行修改,切勿直接复制粘贴

 

 

 

 

4.运行完成

 

 

此时,我们可以发现在刚刚创建的新文件夹D:\OutFaBu中生成许多文件和 dll文件、qm文件,这时候得到的就完整的 exe程序发布集合,依赖关系都解决好了。此时点击DiyDame.exe文件就可完美的运行。

将整个文件夹压缩打包就可以发布了,可以给其他电脑使用,是不是很方便。

另外:

5.双击xxxxxexe,发现不能运行(QT5.14.0版本bug,如果是其他版本到这应该可以运行了)

查阅资料发现是QT5.14.0下,打包应用程序报错,是QT5.14.0的BUG,而我使用的正好是QT5.14.0, 需要更换到QT5.14.1或者更低的版本
我直接重新下载了最新版QT5.14.2安装完成,再执行打包命令发现可以正常运行了,到此打包就完成了

6.打包为一个单文件

为了让安装包干净整洁,可以使用Enigma Virtual Box软件将零散的库和资源文件压缩到一个exe文件,

下载Enigma Virtual Box

 

官网也有免费版 http://enigmaprotector.com/en/downloads.html

下载之后直接安装,然后打开

先点击浏览,选择目标*.exe程序

 

然后点击左下角增加,我是直接选的这个exe的文件夹,然后把exe从文件列表中移除

 

最后点击右下角执行封包,就ok了

 

即可打包制作单文件夹文件了,但是我下载最新版打包的软件都加了引导的广告

有点坑,先这样吧,打不打包都可以,有时间试试别的打包软件

其他参考文章

https://www.cnblogs.com/pozhu15/p/12950984.html

http://blog.chinaunix.net/uid-20044771-id-3222797.html

 

http://tieba.baidu.com/p/3730103947

 

http://blog.csdn.net/liuyez123/article/details/50462637

 

http://blog.sina.com.cn/s/blog_a6fb6cc90101fer8.html

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值