1.需求与目的
QT软件开发完之后,如果直接把exe文件发给别人,是没法直接用的,因为会提示缺少很多库,一种方法是把这些库拷贝出来,一起发过去,但是这样不方便且文件很大,所以需要一种文件打包发布的方法,就是把exe文件和依赖的库打包为一个整体的exe文件,单击直接可以运行。
2.测试环境
1)我用的QT 5.12.10版本,QT 4.x版本不行。
2)Enigma Virtual Box,需要先安装此打包软件,官网下载地址:
Software Protection, Software Licensing, Software Virtualization
3.具体步骤
1)打开一个QT程序,以release方式运行一次。操作如下图:
2)这时你的工程项目文件夹下,会生成一个关于release的文件夹,打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。
3)将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下,比D盘的test文件夹里。
4)在开始菜单中,打开QT命令行窗口
接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车
cd /d D:\test
输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:
此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。这时就可以执行将这一堆文件进行打包的操作了,需要使用Enigma Virtual Box工具。
5)打开运行Enigma Virtual Box
第一步选择上述的spectrogram.exe文件
第二步:添加路径和文件如下图。选择所有文件后,注意是要所有文件和文件夹全部拖进。示意图如下:
选中D盘test文件夹,结果如下:
第3步:点击在【Files Options】中可以选择是否将文件压缩:
说明:选择文件压缩生成的exe文件一般要小50%以上。
第4步:最后点击Process开始打包
D:\test目录内生成spectrogram_boxed.exe就可以直接打开使用了。