Qt程序打包成单个exe文件

0. 准备工作

Qt程序打包用到的工具有:

  • windeployqt :安装Qt时自带
  • Enigma Virtual Box 下载地址 :免费软件

1. 使用 windeployqt 提取必要的动态链接库和资源文件

★说明: 本文仅以笔者自己的Qt程序为例进行介绍,具体项目请作相应的修改。

1.1 操作步骤

  • 步骤1. 新建文件夹,命名为iap
    新建文件夹 iap

  • 步骤2. 拷贝这执行文件
    从Qt工程中的release文件夹中,将可执行文件拷贝到步骤1中新建的文件夹中
    拷贝执行文件

  • 步骤3. 打开Qt终端
    Qt终端
    打开对应的Qt终端,本例中使用MinGW左编译器,因此打开Qt6.5.2(MinGW 11.2.0 64-bit)
    Qt终端
    在终端中进入到步骤1中创建好的文件夹

  • 运行 windeployqt
    指令如下

windeployqt appstm32iap_desktop.exe --qmldir D:\src\qt_ws\stm32iap_desktop\build-stm32iap_desktop-Desktop_Qt_6_5_2_MinGW_64_bit-Release

其中使用 --qmldir指定了QML-Imports的搜索路径,本例中该路径为工程中release的文件夹。

1.2 补充

补充1
在其他的博客中仅使用windeployqt appstm32iap_desktop.exe即可完成。但在实际操作的过程中,打包完的exe无法运行(双击无反应),加入 --qmldir后问题解决。再此作为参考。

补充2
windeployqt具有的功能还有很多,一下列出--hekp-all的信息。

(base) PS C:\Users\HY\Desktop\iap> windeployqt --help-all
Please specify the binary or folder.

Usage: C:\Users\HY
### 打包Qt应用程序为独立的EXE文件 为了创建一个可以分发给用户的独立可执行文件,需要确保所有必要的依赖项都被正确处理。对于基于Qt的应用程序来说,这意味着不仅要编译源代码生`.exe`文件,还要收集并打包所有必需的Qt库和其他资源。 #### 准备工作 在开始之前,请确认已经功构建了项目,并且能够在本地环境中正常运行。这通常意味着已经在Qt Creator中选择了合适的配置(如Debug或Release),并且完了项目的编译过程[^3]。 #### 复制可执行文件 一旦拥有了有效的可执行文件,下一步就是将其放置在一个干净的工作目录内。假设目标是发布版本,则应该从带有 `-Release` 后缀的输出路径下找到对应的 `.exe` 文件,并将其复制到一个新的文件夹中: ```plaintext 例如:将 Release\S12CAN_Baudrate_cal.exe 拷贝至新建文件夹。 ``` #### 使用 `windeployqt` 工具部署依赖库 接下来利用Qt提供的 `windeployqt` 命令行工具来自动检测并复制所需的DLLs以及其他资源文件到同一目录下。此操作可以通过命令提示符完: ```bash cd path\to\your\application\folder windeployqt your-application.exe ``` 上述指令将会把所有必要的Qt组件添加进来,使得最终的产品可以在其他计算机上独立运行而无需额外安装任何东西[^1]。 然而,如果希望进一步减少发行版大小或将多个外部依赖合入单个二进制文件之中,可能还需要考虑更高级的技术方案,比如静态链接或是使用特定工具来进行优化[^2]。 请注意,在某些情况下,简单的 `windeployqt` 可能无法覆盖全部需求,特别是当应用涉及到第三方插件或其他特殊类型的加载模块时。此时则需手动调整以确保完整性和兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值