乐趣区

Qt程序发布与简易剪裁

一、Qt 程序自带发布工具 windeployqt.exe 的使用方法
预备工作:
将 released 的可执行程序 baodishengchengqi.exe 复制到空文件夹,例如 D:\output
从开始菜单中打开 Qt 自带命令行工具,命令行工具的位数是想让程序发布成多少位,就选多少位

输入命令打开上述文件夹 :cd /d d:\output 回车执行命令
对于非 QML 程序 ,使用 windeployqt 工具命令:windeployqt baodishengchengqi.exe

等待命令执行完毕,output 文件夹中即复制了所需文件,压缩拷走即可

对于 QML 程序 ,例如 addressbook.exe,命令行格式为:windeployqt addressbook.exe -qmldir QML 目录
我的 QML 目录如下,右键获取

命令行工具输入,QML 目录部分可以直接粘贴

等待命令执行完毕,output 文件夹中即复制了所需文件,压缩拷走即可

二、Qt 程序发布前的剪裁
尚不懂高级剪裁
对于前面的程序发布文件可打开文件夹做低级剪裁如下:

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

简单总结:
1。建空文件夹并拷入 exe
2。打开相应命令行工具
3。在命令行工具中打开目录
4。区分 qml 与非 qml 程序,输入相应命令
5。剪裁、压缩、拷走

退出移动版