最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。
首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。
第二,介绍一下我所使用的打包工具。一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接Engima Virtual Box https://enigmaprotector.com/en/downloads.html,软件图标如下:
这里写图片描述。
做好这些准备工作之后,操作步骤如下:
<1>: 打开一个QT程序,以release方式运行一次。操作如下图:
这时你的工程项目文件夹下,会生成一个关于release的文件夹:
<2>:打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下。
<3>:在win10下,搜索QT,如下图:
打开Qt 5.12.1 (MinGW 7.3.0 64-bit)命令窗口 :
接着输入命令行,输入你的打包路径如e:\ ,cd 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车后:
输入如下命令行:windeployqt 程序名.exe 回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:
此时,在当前目录下是可以直接点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。现在只需要将这一堆文件进行打包。
<4>打开运行Enigma Virtual Box:
点击界面的增加按钮-->增加文件夹(递归)如下图。
也可以托选,选择所有文件后,直接拖入界面框内。注意是要所有文件和文件夹全部拖进。
注意如果有数据库dll文件,可以直接拖到此文件夹中,然后再增加---增加文件夹()递归)即可.
在【文件选项】中可以选择是否将文件压缩:
然后点击执行封包。
打包完成后,我们的工作就完成了,去程序打包后的路径点击运行吧。