对Qt项目进行打包的三种方式

对Qt项目进行打包的三种方式

PPPack!一处打包到处运行!

Author: kkl

首先!是来到了2025年!新年快乐各位!🥳🐍


写在前面

先前,我有使用Qt写过一些项目,类似EasyGPS的上位机EasyGPS-MAP,然后我发现我每一回要向他人展示的时候都需要打开Qt Creater然后重新编译一下这个项目才行(而且在Windows中打开Qt真的很慢,显然这种操作是不够优雅的,同时我有在别的电脑环境运行上位机的需要。基于以上诉求,这篇文章将会记录三种对Qt项目进行打包的方式!

本篇文章将简述如何迅速地对Qt项目进行打包。

我的环境

  • 电脑环境:Windows 11
  • Qt版本:5.14.1

开始

1. 打包成绿色便携版本

特点:无需安装,可以制作成为一个压缩包文件来转发给别人,解压即用。

  1. 首先,将项目的编译版本修改为Release,然后执行一次编译运行。这里不是必须要改,只是修改后发布的软件体积比较小,推荐使用Release.

  2. 然后找到编译输出的目录类似/build-EasyGPS-Map-Desktop_Qt_5_14_1_MSVC2017_64bit-Release,然后进入release文件夹.

  3. release文件夹中除了.exe文件以外的所有文件都删除,当然你也可以不删除,只不过会徒增内存,对功能无影响.

---
---
  1. 根据你的编译Kit打开对应的命令行工具,比方说我这里使用的是MSVC2017_64bit进行的编译,那我就选择如图所示的工具:

  2. 打开对应的命令行工具,cd到对应的release文件夹,然后执行windeployqt + xxxname.exe.

这里记录在windows命令行使用cd命令的小技巧,倘若你仅仅在一个盘内进行cd(如只在C盘、只在D盘,正常cd + address即可。
如果你要跨盘cd(如从C盘到D盘,此时需要cd /d + address,或者先敲一个D: + 回车键切换盘符,然后正常cd。

然后Qt自带的工具程序,会把该.exe文件缺失的库文件补充齐全,如下图。此时你就可以双击打开该.exe文件,惊喜地发现,它可以直接运行啦!

---
---
  1. 接着,你可以单独将这个release文件夹压缩成压缩包发送给别人,解压即用!非常舒适!

2. 打包成单文件版本

特点:给他人发送一个包含运行环境的.exe文件,双击即用!无需压缩or解压。

首先,你需要对Qt项目做打包成绿色便携版本的操作!

这里使用软件Enigma Virtual Box进行Qt项目的封包,该软件官网下载地址:https://www.enigmaprotector.com/en/downloads.html

我的电脑环境是Windows 11,我选择64位的版本,然后下载安装时一路next就行,没什么特别的操作。

  1. 打开软件Enigma Virtual Box,选择等待封包的主程.

  1. 选择增加...->增加文件夹[递归],选择release文件夹,点击确定.

  1. 点击文件选项->压缩文件,然后点击确定.

  1. 最后,点击执行封包.

  1. 然后在release文件夹下会多出来一个xxxname_boxed.exe结尾的.exe文件啦!

不过请注意,如果你的Qt项目包含了类似QtWebEngineWidgets等模块,可能会导致封包失败或者封包之后的文件不可用!最好还是使用打包成绿色便携版本的方法吧,这个方法十分稳妥!

3. 打包成可安装版本

未完待续…

写在后面

鸣谢以下教程:



对Qt项目进行打包的三种方式
https://zhangkeliang0627.github.io/2025/01/02/对Qt项目进行打包的三种方式/README/
Author
Zhang-keliang
Posted on
January 2, 2025
Licensed under