Qt之程序打包(使用windeployqt.exe查找依赖库)

时间:2021-10-11 18:40:42
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe以官方 Qt 5.7.0+MinGW 开发环境为例:

开始菜单-->Qt 5.7.0-->5.7-->MinGW 5.3.0 (32-bit)-->Qt 5.7 for Desktop (MinGW 5.3.0 32 bit),可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。

集成开发环境 QtCreator 目前生成图形界面程序 exe 大致可以分为两类:Qt Widgets Application 和 Qt Quick Application。

1、Qt Widgets Application

1)首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 Login,然后以 Release 方式编译生成可执行程序。

2)生成的程序运行正常之后,找到项目的生成目录,比如项目源码路径:E:\Qt\Login,进入它的项目生成目录,拷贝出可执行程序,例如放置在 E:\QtApp 中。Qt之程序打包(使用windeployqt.exe查找依赖库)
3)然后从开始菜单打开 Qt 命令行,

a.输入命令 :cd /d E:\QtApp 进入目录,

b.然后使用 windeployqt 工具命令:windeployqt Login.exeQt之程序打包(使用windeployqt.exe查找依赖库)

c.之后就可以看见windeployqt 工具自动复制的插件文件夹和dll文件、qm文件。这时候得到的就完整的可执行程序发布集合,依赖关系都解决好了。Qt之程序打包(使用windeployqt.exe查找依赖库)

4)之后通过其他的打包方式,或者使用Qt的install进行打包,即可生成单一可执行程序用于安装发布。

2、Qt Quick Application

       新建方式和生成Widgets程序相同,只是在查找依赖的时候不同,需要使用命令windeployqt TestQt.exe --qmldir 指定qml目录,进行复制依赖,之后打包方式也相同。


参考文档:

QT程序自动寻找依赖的DLL(Qt官方开发环境生成的exe发布方式--使用windeployqt)

使用windeployqt.exe进行依赖查找打包

使用 Qt InstallFramework 进行程序打包(一)

使用Qt installer framework制作安装包

Qt Install Framework使用方法

Windows如何打包Qt程序

发布Qt Widgets桌面应用程序的方法

vs2015静态编译Qt5.7.1及使用