前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >QT程序打包发布Release时的注意事项

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

作者头像
杨永贞
发布2022-04-13 10:21:07
1.9K0
发布2022-04-13 10:21:07
举报
文章被收录于专栏:独行猫a的沉淀积累总结

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

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

windeployqt.exe的使用方法:

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

代码语言:javascript
复制
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所在的文件夹。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档