一、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 支持都不完整——虚拟机环境就是这样——不然这个文件也完全没有用。
QtWidgets/C++ 程序都不用 OpenGL,所以直接去掉即可。可在调用windeployqt.exe时加--no-angle 和 --no-opengl-sw 这两个参数。
3.如果没有使用 svg 的话,iconenginesqsvgicon.dll, imageformatsqsvg.dll, Qt5Svg.dll 这三个文件也可以删掉
4.如果没有国际化用户的话,translations 里面的翻译文件也可以删掉。
5.QML 程序没有使用 QtWidgets/C++ 可以删掉 Qt5Widgets.dll
6.如果 imageformats 目录里面有几种图像格式没用上,也可以删掉。我自己通常把整个目录都删掉,Qt已经编译了 png 的支持,能读写程序包含的图标就够,其它格式不重要。
7.qmltooling 和Qt5Network.dll 是用于 QML 调试用的,可以删掉。
简单总结:
1。建空文件夹并拷入exe
2。打开相应命令行工具
3。在命令行工具中打开目录
4。区分qml与非qml程序,输入相应命令
5。剪裁、压缩、拷走
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。