Qt5.15.2 可执行程序发布
近期因为项目和个人产品生产调试的需要,用Qt 5.15.2制作了几个配置调试软件;
准备发给生产时,觉得软件包太过臃肿,想要做些改进,之前给生产移交调试软件时,只用Qt自带的桌面工具打包可执行程序;
这种打包方式,文件夹下会多出很多的库文件,要从中找到 .exe 可执行文件才能打开运行,不够简洁;
遂整理一下使用第三方工具打包 .exe 可执行文件的流程,打包后整体只有一个 .exe 可执行程序,无需安装,到手即用。
打包过程涉及到两个工具;
· Windeployqt
· Enigma Virtual Box
Windeployqt工具,无需下载,这是Qt集成好的桌面软件发布工具,它会根据.exe文件的需要,打包运行时使用的全部库资源;
Enigma Virtual Box工具,是一款免费的第三方打包工具,它可以将任何exe文件及其依赖的文件打包成一个完整独立的可执行程序;
下载地址:https://enigmaprotector.com/en/downloads.html
发布流程分为两个部分,先使用Windeployqt工具将 .exe 文件所需的全部依赖打包到一个文件夹中;然后再使用Enigma Virtual Box工具将所有文件封装成一个 .exe 文件。
首先,将Qt切换至Release模式生成 .exe 可执行文件;
从Qt工程路径下的Release文件夹下,将 .exe 文件和图片资源拷贝到待打包的文件夹中;
从Windows 11的软件中找到Qt文件夹,从文件夹中找到桌面发布工具并打开;例如我这里Qt编译时使用的是MingW8.1.0 32bit编译器,那么发布时就选择相同的发布工具;
①、输入命令:cd /d <exe可执行程序路径>;例如我这里待打包的程序路径是D:\10_Qt_Source_Project\ZiZheng_AO8_Tools_V1_0_0,将路径复制过去即可;
②、输入命令:windeployqt <可执行程序名称>;例如我这里待打包的程序名称是PLC_Tool.exe,命令就是windeployqt PLC_Tool.exe;
③、命令输入正确后,开始执行打包过程,无需操作;
打包执行完毕后,文件路径下会多出很多依赖库文件;
执行到这一步,.exe 文件已经可以独立运行,但还不是我们追求的,我们希望它能是一个独立、完整的.exe文件;
打开安装好的Enigma Virtual Box软件;
①、打开我们上述封装好的.exe文件;
②、打开生成后想要放置的路径,并设置好名称;
①、回到我们之前打包好的.exe文件夹下,全选文件;
②、拖放至空白处;
③、点击OK;
①、打开文件操作;
②、选择压缩文件;
③、点击OK;
选择处理;
①、打包完成后,可以选择运行也可以关闭;
回到我们设定的输出路径中,可以看到,整个文件夹中只有一个.exe文件,没有了依赖库等其它杂项。
至此,Qt程序的发布及打包流程记录完毕;
这样打包出来的软件为绿色版,只有一个 .exe 可执行文件,客户拿到后,无需安装,打开即用。