一. 使用windeployqt打包一个qt软件的基本流程
- 新建一个文件夹用于打包程序,通常建立纯英文名文件夹,将工程中的exe文件复制到该文件夹中。
- 从windows开始菜单中找到Qt文件夹中的qt 6.6.1(MSVC 2019 64-bit),具体名称跟据你自己的软件版本,打开该编辑器。
注意有environment for Qt字样的编辑器才能使用windeployqt进行打包
- cd + 文件夹绝对路径,进入该文件夹路径中
- 键入指令 windeployqt xxxsoftware.exe ,改为你exe的名称,按下enter,成功打包的话,会出现下列一串东西。
- windeployqt使用成功后,你建立的文件夹中会出现很多文件,如下例子
- 至此,软件的打包基本完成,如你的项目有额外的外置文件夹,图片等,添加到该文件夹中即可运行。但,项目较大时,通常都会有一些dll没有自动打包进来,例如自己编译的第三方dll等需要手动添加,甚至有时不知道缺少了哪些东西。这时可以通过下列方法,打印软件所有被使用的dll清单,依次添加进去即可。
二. 使用dumpin 命令打印软件所有dll清单
- 从windows开始菜单中找到vs文件夹中的Develop PowerShell for Vs 2022命令台,具体版本名称根据你自己的软件寻找,打开命令台。
- 使用类似打包时的方式,cd+文件夹路径,进入打包文件夹路径中,输入 dumpbin.exe /IMPORTS .\xxxsoftware.exe >output.txt命令,将软件中使用的所有dll打印到output.txt文件中,注意exe名称改为你的名称。
- 执行完上述命令后,能在打包文件夹中发现新增了一个output.txt文件。
- 打开outout.txt文件,能发现所有dll名称及使用位置,使用everything软件,检索电脑中的对应dll,加入到打包文件夹中,即可解决dll缺失的问题。
- dll全部添加后,如果出现红叉框,说明你可能错误复制了dll文件,比如release程序,你复制的dll时DEBUG下的,或者32位 64位版本的错误,如果出现红叉,一点点重新拷贝一遍,一般都没有问题。