关于QT发布的程序在其他电脑上运行缺少dll的问题

对于原理就不再赘述,本文只用最简洁的话,说明一下操作流程,以便于打包时参考  

使用QT自带的打包程序windeployqt.exe来进行打包

找到QT creator中项目构建目录中的路径,路径下有exe文件

将exe文件放到一个新的文件夹中

点开QT命令框,你使用什么套件,就点开相应的命令框:

关于QT发布的程序在其他电脑上运行缺少dll的问题

注意,这里,如果直接用windeployqt.exe来生成的话,可能会出现在别人电脑上打不开的情况,反正本人是出现了。可能的报错有很多,缺少部分dll,或者直接应用程序错误。

故,需要增加一个环节:搜索一个bat文件vcvarsall.bat

这个bat是VS中的:关于QT发布的程序在其他电脑上运行缺少dll的问题

本人电脑上安装了两个版本的VS,所以有两个。

网上有的人再QT命令框中有这样的提示:Remember to call vcvarsall.bat to complete environment setup!

但是我的没有,不太明白是什么意思,但是这个方法确实行之有效

在命令框中输入命令:call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86。按你实际的路径输入。

结果为:关于QT发布的程序在其他电脑上运行缺少dll的问题

然后进行打包操作

先进入自己所放exe文件的路径,cd 后接路径即可,然后windeployqt 后接某某(你的exe名字).exe即可

这时候你可以看到qt为你自动增加了很多dll到你的文件夹

关于QT发布的程序在其他电脑上运行缺少dll的问题

到这里其实基本就完成了。

但是实际工作中,你会发现,将这样一个文件夹打包就说你开发了一个应用程序实在是有点儿low。所以最好把整个文件夹打包成一个exe。这样清晰明了。

这个工作可以采用Enigma Virtual Box来完成

关于QT发布的程序在其他电脑上运行缺少dll的问题

分别输入你的exe文件路径和你想要将保存的打包exe保存在哪儿

然后点击add,添加依赖的dll,包括之前生成的文件夹

关于QT发布的程序在其他电脑上运行缺少dll的问题

files options可以选择compress files,这样生成的exe所占空间会小

最后点击process就完成了