windeployqt工具来进行Qt的打包发布

本文介绍如何使用Qt的windeployqt工具简化程序发布流程,通过详细步骤指导,确保发布的exe程序在不同电脑上顺利运行,避免缺失dll文件的问题。

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。

因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

问题的提出

既然是要发布自己的程序,那么就需要,在Release中编译运行。具体方法如下图所示。

1.点击qt界面左下角的图标;

2.选择Release;

3.点击编译运行即可;

图片

生成的程序运行正常之后,找到项目的生成目录。比如,项目源码路径:

D:\OutPutResult\QtWorkPlace\DiyName

它的项目生成目录是:

D:\OutPutResult\QtWorkPlace\build-DiyName-Desktop_Qt_5_8_0_MinGW_32bit-Release

图片

我们可以发现,此时点击.exe文件是会出问题的,解决办法如下。

使用windeployqt工具,进行打包发布

1.首先进入上图中这个文件夹,在里面,找到 DiyName.exe,将这个.exe 复制到一个新的单独的文件夹里用于发布,比如存到 :

D:\OutFaBu 文件夹里面。

图片

此时,这个文件只一个有刚刚从release文件夹下,复制过来的.exe文件。

2.以官方 Qt 5.8.0+MinGW 开发环境为例,

从开始菜单–》Qt 5.8.0–》5.8–》MinGW5.3.0 (32-bit)–》Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)

可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。

图片

3.然后从开始菜单打开 Qt 命令行,输入命令 :

cd /d D:\OutFaBu

然后使用 windeployqt 工具命令:

windeployqt DiyName.exe

【注意】D:\OutFaBu和DiyName.exe都是本人自己创建和生成的文件,读者根据自己情况自行修改,切勿直接复制粘贴

图片

4.运行完成

图片

此时,我们可以发现在刚刚创建的新文件夹D:\OutFaBu中生成许多文件和 dll文件、qm文件,这时候得到的就完整的 exe程序发布集合,依赖关系都解决好了。此时点击DiyDame.exe文件就可完美的运行。

将整个文件夹压缩打包就可以发布了,可以给其他电脑使用,是不是很方便。

### 使用 `windeployqt` 工具打包 Qt 程序为可发布的 Windows 应用程序文件夹 在 Windows 平台下,使用 `windeployqt` 工具可以将 Qt 程序及其依赖项打包为一个可独立运行的文件夹。该工具会自动检测并复制应用程序所需的动态链接库(DLL)、插件、翻译文件等,使得应用程序可以在没有安装 Qt 运行环境的计算机上运行。 #### 准备工作 确保已经完成以下步骤: - 编译并生成 Qt 应用程序的可执行文件(`.exe`)。 - 找到该可执行文件所在的目录,并确保该目录下没有无关的文件。 #### 操作步骤 打开 Qt 自带的命令行工具,例如 **Qt 5.14.1 MinGW 控制台**,以确保环境变量已正确设置。使用 `cd` 命令切换到包含 `.exe` 文件的目录: ```bash cd /d 路径 ``` 在该目录下,执行以下命令: ```bash windeployqt count.exe ``` 该命令会分析 `count.exe` 的依赖项,并将所需的 DLL 文件、插件目录(如 `platforms`)、翻译文件等复制到当前目录中。执行完成后,当前目录将包含一个完整的运行环境,可以直接复制到其他计算机上运行[^1]。 #### 注意事项 - 使用 `windeployqt` 生成的文件夹是免安装版本,用户只需点击 `.exe` 文件即可运行程序。 - 如果希望将这些文件进一步打包为安装程序(如带有安装向导的 `.exe` 安装包),可以使用 Qt Installer Framework 或 NSIS 等工具进行封装[^3]。 - 如果程序使用了 QML 或其他动态模块,可能需要手动复制相关资源文件或插件,以确保程序能正常运行。 --- ### 示例:使用 `windeployqt` 的命令行输出 执行命令后,控制台输出类似如下内容: ```bash Adding Qt5Core for C:\path\to\count.exe Copied "C:\Qt\5.14.1\mingw73_64\bin\Qt5Core.dll" to "C:\path\to\app\Qt5Core.dll" Adding Qt5Gui for C:\path\to\count.exe Copied "C:\Qt\5.14.1\mingw73_64\bin\Qt5Gui.dll" to "C:\path\to\app\Qt5Gui.dll" Adding Qt5Widgets for C:\path\to\count.exe Copied "C:\Qt\5.14.1\mingw73_64\bin\Qt5Widgets.dll" to "C:\path\to\app\Qt5Widgets.dll" Creating directory C:\path\to\app\platforms Copied "C:\Qt\5.14.1\mingw73_64\plugins\platforms\qwindows.dll" to "C:\path\to\app\platforms\qwindows.dll" ``` 该输出显示了 `windeployqt` 自动复制的依赖项及其路径。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值