QT release 发布打包压缩

一.编译

方法如下图所示。

1.点击qt界面左下角的图标;

2.选择Release;

3.点击编译运行即可;

 QT release 发布打包压缩

 

 

生成的程序运行正常之后,找到项目的生成目录。比如,项目源码路径:
D:OutPutResultQtWorkPlaceDiyName
它的项目生成目录是:
D:OutPutResultQtWorkPlacebuild-DiyName-Desktop_Qt_5_8_0_MinGW_32bit-Release

 QT release 发布打包压缩

 

 

我们可以发现,此时点击.exe文件是会出问题的,解决办法如下。

 QT release 发布打包压缩

 

 

 二.发布

使用windeployqt工具,进行打包发布
1.首先进入上图中这个文件夹,在里面,找到 DiyName.exe,将这个.exe 复制到一个新的单独的文件夹里用于发布,比如存到 :
D:OutFaBu 文件夹里面。

 

此时,这个文件只一个有刚刚从release文件夹下,复制过来的.exe文件。
QT release 发布打包压缩

 

 

4.运行完成

QT release 发布打包压缩

 

 

此时,我们可以发现在刚刚创建的新文件夹D:OutFaBu中生成许多文件和 dll文件、qm文件,这时候得到的就完整的 exe程序发布集合,依赖关系都解决好了。此时点击DiyDame.exe文件就可完美的运行。

这时候就会看到 qt 已经把需要用到的 DLL 都复制过来了。我会在这个基础上再根据需要去掉一些东东:

  1. libEGL.dll, libGLESV2.dll 这两个文件是 ANGLE 的文件,可以去掉。opengl32sw.dll 是软件模拟 OpenGL,除非用户的系统连 DirectX 支持都不完整——虚拟机环境就是这样——不然这个文件也完全没有用。 QtWidgets/C++ 程序都不用 OpenGL,所以直接去掉即可。可在调用 windeployqt.exe 时加"--no-angle" 和 "--no-opengl-sw" 这两个参数。
  2. 如果没有使用 svg 的话,iconenginesqsvgicon.dll, imageformatsqsvg.dll, Qt5Svg.dll 这三个文件也可以删掉
  3. 如果没有国际化用户的话,translations 里面的翻译文件也可以删掉。
  4. QML 程序没有使用 QtWidgets/C++ 可以删掉 Qt5Widgets.dll
  5. 如果 imageformats 目录里面有几种图像格式没用上,也可以删掉。我自己通常把整个目录都删掉,Qt已经编译了 png 的支持,能读写程序包含的图标就够,其它格式不重要。
  6. qmltooling 和 Qt5Network.dll 是用于 QML 调试用的,可以删掉。
  7. 到第三部压缩时,可以减小文件大小。

 

三.压缩

Enigma virtual box是免费的软件虚拟化工具,它可以将多个文件封装到您的应用程序主文件,这样您的软件就可以制作成为单文件的绿色软件。
enigma virtual box 支持所有类型的文件格式,包括动态链接库 (.dll), activex/com (.dll, .ocx), 视频/音频文件 (.avi, .mp3), 文本文件 (.txt, .doc) 等。

QT release 发布打包压缩

 上图步骤2与3间可点击文件选项按钮,勾选压缩选项,打包完成的可执行文件大小会小得多 。

原文链接: https://www.cnblogs.com/Joezhang433/p/12812715.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    QT release 发布打包压缩

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/345620

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午3:22
下一篇 2023年3月2日 上午3:22

相关推荐