QT程序打包发布Release时的注意事项

QT的release编译打包后,不能直接拿来用。缺少很多的dll。

如果一个个的拷贝,不知道要哪些,不要哪些Dll,一个个找也麻烦。好在QT提供了windeployqt.exe程序专门用来提取相关的DLL。但是这还是有个坑,这里记录下留作以后使用注意。

windeployqt.exe的使用方法:

新建一个文件夹,把项目工程release模式下编译生成的.exe文件单独拷贝出来,放到新建的文件夹内。在新建的文件夹内打开cmd窗口,执行命令:

D:\Qt\Qt5.9.0\5.9\mingw53_32\bin\windeployqt.exe -no-angle -no-opengl-sw myapp.exe

 有个坑是,必须得把你的QT安装目录的D:\Qt\Qt5.9.0\Tools\QtCreator 和D:\Qt\Qt5.9.0\Tools\mingw530_32\bin假如到环境变量中,然后再在cmd窗口上打包。否则会报错,提示找不到libgcc_s_dw2-1.dll,即使你在电脑上找到它放进去也没用。

注意:如果是QML的应用,Qml的打包和QT传统的打包方式也是不同的。

QT的打包可以用这个:

D:\Qt\Qt5.10.0\5.10.0\msvc2015\bin\windeployqt.exe -no-angle -no-opengl-sw test.exe


QML的应用打包:通过cd命令到你的exe存放的地方,并输入下面的命令:

windeployqt  -qmldir   "源码路径"     test.exe   --release
命令执行完后,在你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. 如果 imageformats 目录里面有几种图像格式没用上,也可以删掉。通常把整个目录都删掉,Qt已经编译了 png 的支持,能读写程序包含的图标就够,其它格式不重要。
  5. qmltooling 和 Qt5Network.dll 是用于 QML 调试用的,可以删掉。
  6. 到第三部压缩时,可以减小文件大小。

压缩

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

 

 这个错多因为环境变量的影响。把上面添加的两个环境变量往前移动移动,再观察下环境变量里是否有其他的版本的库或Mingw影响。

设置应用程序图标方法:

简单三步走,搞定

①创建一个图标格式的文件,可以网上在线将普通的图形格式转成.ico 格式的图标文件

http://www.faviconico.org/

这个网站可以在线转换png、jpg、gif文件为ico格式,亲测很好用

②将转换好的图标文件myico.ico放到源码目录,就是.Pro所在的文件夹。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特立独行的猫a

您的鼓励是我的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值