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文件复制到目录下,实际运行试试,是不是可以正常运行。
执行完上述命令后就打包成功啦,但是体积真够大。这是开始删减些没用到的库和文件夹。
压缩
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所在的文件夹。