文章目录
前言
不建议各位看这篇文章的正文,有别人有更好的解释这个的文章,我这里主要是记录一下之前我的摸索过程。要部署的话,只要一行命令就行。
widget工程
windeployqt xxx.exe
qml工程,不过这里的qml是需要指向你自己工程的qml文件所在文件夹,而非Qt安装目录的qml文件夹。
windeployqt xxx.exe -qmldir xxx
勘误
linux的看这个博主的:https://blog.csdn.net/q357010621/article/details/98885618
([20191213]后来看到资料说,windeployqt 后面带qml的路径就可以,我试了一下,的确可以。这样方便多了。 windeployqt xxx.exe -qmldir D:\Qt\Qt5.12.3\5.12.3\msvc2017\qml)
([20200710]使用Qt5.12.7时, 用windeployqt xxx.exe -qmldir D:\Qt\Qt5.12.7\5.12.7\msvc2017_64\qml 后, 假如你的qml工程中使用了QtVirtualkeyboard,那么还要手动拷贝两份东西;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200710092044484.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pveW9waXJhdGU=,size_16,color_FFFFFF,t_70
)*
([20201021]假如在发布时遇到类似下面的错误
只需要到Qt的bin目录
拷贝对应的dll就可以了。(QtQuick文件夹里面的对应的东西也要拷贝过去))
([20231106]经过同事提醒, 用windeployqt xxx.exe -qmldir xxx 时, qmldir指向的路径不要指向Qt安装目录下的qml,而是应该指向你自己的工程的qml文件所在文件夹。试了一下,的确如此,指向合适的文件夹后,几乎是一次就成功运行,不提示缺啥了。提示缺的,可以按照正文提到的方式解决
本文假设你已经能够正确地使用QtCreator生成了你的exe程序。
1.将你的exe拷贝到一个文件夹下
2.运行你使用的Qt版本的终端
3.cd到你exe存放的目录
4.在终端中输入windeployqt [你的exe文件],按下回车键运行;
此时运行的话,一般是运行不了的。还需要复制两部分的东西。
5.复制你的qt安装目录下的qml文件夹到exe目录下
6.复制你的qt安装目录下的bin目录下的dll文件到你的exe文件夹下
7.此时再双击运行,一般都可以运行了。假如还不行的话,按照提示把缺少的dll拷贝到exe文件夹中(或者把路径加到环境变量中)即可。
PS:此时整个文件夹的体积会比较大。其实里面有很多dll,根据你实际的使用情况,是允许被删除的。可以根据实际情况选择性地删除。