发布QT生成的程序,用Enigma.Virtual.Box打包成单文件,以及与UPX的冲突
2021/7/26 11:05:41
本文主要是介绍发布QT生成的程序,用Enigma.Virtual.Box打包成单文件,以及与UPX的冲突,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1)发布QT生成的程序
- 2)用Enigma Virtual Box打包成单文件
- 3)注意和UPX压缩冲突
1)发布QT生成的程序
我们用QT(简体中文首页)编译好执行程序就直接运行,则会发现少很多动态链接库,如下图:
类似的一大堆错误。
那么就需要用QT自带的部署命令。
将编译好的release版本程序放入一个空目录,打开QT的命令行,执行windeployqt命令:
比如我的例子是:
执行:
> windeployqt D:\VM\ShareFolder\softwares\test\EricssonBackupParse.exe
完成后多了很多目录和库,程序就可以正常运行了:
当然不需要多国语言的话,translations目录是可以删掉的。
2)用Enigma Virtual Box打包成单文件
通过上面的例子可以看到,发布一个QT程序需要很多目录和文件,交给前方需要打包成压缩包,用的时候需要解开压缩包,始终觉得稍微不方便。
这时候一般就可以用Enigma Virtual Box打包成单文件再发布。
同样刚才的例子:
- 先选择主exe文件。
- 再把主exe文件所在目录当作【%DEFAULT FOLDER%】递归加入,请注意,这里要去掉不必要的文件和文件夹,比如主文件本身,以及日志,测试生成的临时文件等。
- 这个例子中不需要注册表,自己的项目得看情况。
- 注意可以在”文件选项“中选择压缩,生成的结果小一些。
点击打包按钮,等待完成:
最后把生成好的文件留下了,其他文件可以删掉了。
此例打包成单文件完成后有20多MB。。。
3)注意和UPX压缩冲突
如果你也喜欢顺手用UPX压缩主程序exe文件,那么再用Enigma Virtual Box打包后,程序是无法正常执行的(至少在我这里是这样)。
也就是说你不能先用UPX压缩,再Enigma Virtual Box打包。
D:\VM\ShareFolder\softwares\test>upx -9 -k EricssonBackupParse.exe Ultimate Packer for eXecutables Copyright (C) 1996 - 2020 UPX 3.96w Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020 File size Ratio Format Name -------------------- ------ ----------- ----------- 462336 -> 209920 45.40% win64/pe EricssonBackupParse.exe Packed 1 file. D:\VM\ShareFolder\softwares\test>
但是如果先用Enigma Virtual Box打包,再UPX压缩则会报错。
嗯,至少不会不能运行。
Ultimate Packer for eXecutables Copyright (C) 1996 - 2020 UPX 3.96w Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020 File size Ratio Format Name -------------------- ------ ----------- ----------- upx: EricssonBackupParse_v1.05.exe: CantPackException: section size problem Packed 1 file: 0 ok, 1 error.
这篇关于发布QT生成的程序,用Enigma.Virtual.Box打包成单文件,以及与UPX的冲突的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19JAVA分布式id教程:轻松入门与实践
- 2024-11-19Java高并发教程:入门与实践指南
- 2024-11-19JAVA高并发直播教程:新手入门指南
- 2024-11-19Java高并发直播教程:入门与实践指南
- 2024-11-19Java微服务教程:初学者快速入门指南
- 2024-11-19JAVA微服务教程:新手入门的详细指南
- 2024-11-19Java微服务教程:从零开始搭建你的第一个微服务应用
- 2024-11-19Java项目开发教程:初学者必备指南
- 2024-11-19Java项目开发教程:新手快速入门指南
- 2024-11-19Java项目开发教程:零基础入门到实战