Qt打包

下面分别介绍这两种方式创建应用的发布方式。


1. Qt Widgets Application
首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。



然后以 Release 方式编译生成 exe 程序:


在进入文件夹 release 里面,找到 hellomw.exe,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\hellomw\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,输入命令:cd /d D:\hellomw
然后使用 windeployqt 工具命令:windeployqt hellomw.exe


然后可以在 D:\hellomw 文件夹里看到 windeployqt 工具自动复制的插件文件夹和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。


把 D:\hellomw 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。D:\hellomw 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。





问题:

exe打不开


应用程序无法正常启动(0xc000007b)。


控制台中

can not find any version of the d3dcompiler dll

can not find visual studio installation directory ,VCINSTALLDIR is not set



用qt自带的打包,不要用cmd







2. Qt Quick Application

首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
然后以 Release 方式编译生成 exe 程序:


然后找到项目的构建目录,比如项目源码目录 C:\QtPros\helloqml 。
它的构建目录是:C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个目录,再进入 release 子文件夹,找到 helloqml.exe ,复制到一个新的单独的文件夹里面,比如 D:\helloqml\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,进入D:\helloqml\文件夹:cd /d D:\helloqml
然后使用 windeployqt 工具命令:windeployqt helloqml.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml


注意不要跟完全一样照抄上条命令!--qmldir 是指出 Qt 库里面的 qml 文件夹位置,上面命令里 C:\Qt\Qt5.4.0 是 Qt 官方开发环境安装的文件夹,C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt类库的目录(QTDIR),因此使用的 --qmldir 后面写的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml ,读者Qt环境安装路径不一样,要根据实际情况修改!

然后可以看到 D:\helloqml 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。将整个 D:\helloqml 文件夹 打包就可以发布出去,在别的电脑上使用。

这个 D:\helloqml 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。


上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。

Qt 程序打包指的是找到可执行文件运行需要的所有动态库文件,并将它们统一存放到指定的空文件夹里。以下是一些常见的 Qt 打包方法和相关教程: ### 手动发布 在桌面新建一个文件夹,例如`hello`,将`debug`或者`release`文件夹下需要打包的`exe`文件拷贝至桌面`hello`文件夹。在 Windows 左下角搜索栏搜索 QT,打开`Qt 5.12 for Desktop(MinGW 7.3.0 64-bit)`(此处 Qt 为自己电脑里的 Qt 版本),切换至桌面`hello`文件夹,使用命令`cd C:\Users\XXX\Desktop\hello`,输入`windeployqt 打包.exe`,例如:`windeployqt strsvr_qt.exe`,此点击`.exe`文件是可以运行的。若打包后的`exe`文件移动到其他文件夹不能运行,提示`Cannot load libraryQt5Core.dll`,将 Qt 安装目录`\mingw73_6\bin`下所有`dll`文件拷贝至桌面`hello`文件夹中重新打包打包可以运行后此`exe`文件将会很大,每次去掉第七步的一半`dll`文件,重复第七步,直至最小化文件。还可以打开 Enigma Virtual Box,在第一个选项栏中将需要打包的`exe`文件选中,点击打包即可。Enigma Virtual Box 阿里云盘下载连接为:https://www.aliyundrive.com/s/887BdSHPmP7 [^3]。 ### 命令行操作 在“开始”菜单中选择点击相应选项,右侧将弹出命令行,根据命令进入到新建文件夹,如`D:/packge`,最后执行命令`windeployqt SmartQT.exe`完成依赖文件的抓取 [^5]。 ### 注意事项 如果封装后运行提示缺失`qt6core.dll`文件,可能是缺失`libgcc_s_dw2-1.dll`,`libwinpthread.dll`,`libstdc++-6.dll`这三个动态库,为 C++和 gcc 编译所需的库。需要在 Qt 安装目录中如`Qt5.12.0\5.12.0\mingw73_64\bin`(版本不同目录不同)找到对应的文件夹,然后在增加文件夹递归再增加个相应的文件夹 [^4]。 示例代码(简单的 Qt 程序,用于演示如何将程序打包成`exe`文件): ```cpp #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton btn("Hello World!"); btn.show(); return app.exec(); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值