<QT开发> QT开发工具-之-QT应用程序打包

<QT开发> QT开发工具-之-QT应用程序打包

一 前言

笔者为什么会写这篇文章呢?这是因为,笔者使用windows QT开发了一个测试工具。目的是通过TCP/IP测试其它应用程序。首先这个QT程序是笔者自己开发的,所以笔者的电脑当然是可以运行这个QT程序的,但是想要这个QT程序在其它同事的电脑上运行怎么办?他的电脑又没有安装QT程序;而且也没必要直接给QT源码。 所以就产生了一个需求:如何将编译后的QT程序打包成单独的exe执行文件,然后这个单独的exe文件,就可以再其它没有安装QT的电脑上运行了。

基于上述要求,我们以一个简单的QT程序为例,讲解如何打包执行文件。

QT安装可参考笔者另一篇文章:<QT开发> QT开发工具-之-QT安装

二 新建测试QT工程

2.1 新建QT工程

在电脑桌面新建文件夹“QT_TEST”,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第1张图片

打开开始菜单,选择QT,现在已安装的“Qt Creator”;笔者安装的是“Qt Creator 9.0.2”,所以就选择这个了。
<QT开发> QT开发工具-之-QT应用程序打包_第2张图片
打开后界面如下:
<QT开发> QT开发工具-之-QT应用程序打包_第3张图片
点击 :创建项目 ,参考下图笔者选择即可,如果有其他要求可自行创建。
<QT开发> QT开发工具-之-QT应用程序打包_第4张图片
输入项目名称可存储路径,笔者这里就存在前面桌面创建的QT_TEST目录中,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第5张图片
选择qmake编译程序,当然读者有要求也可以选用cmake等,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第6张图片
生成模板程序的,主界面类名称和文件名等的设置,这些都是用默认的名称即可,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第7张图片
选择是否翻译的语言,这里就选“无”,有要求的读者,可自行选择。如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第8张图片
选择编译使用的kit工具,笔者选择6.2.4 64bit 如下图,按需选择即可;
<QT开发> QT开发工具-之-QT应用程序打包_第9张图片

项目管理配置,默认选择“无”即可,如下图:

<QT开发> QT开发工具-之-QT应用程序打包_第10张图片

点击完成后,就会自动打开前面配置的QT工程了,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第11张图片

2.2 添加UI

在2.1小节打开的界面中,双击“mainwindow.ui”这个文件,就会进入UI编辑界面,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第12张图片
将左侧的控件,拖拽到右侧空白区域,读者可自行选择,笔者操作如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第13张图片
至此我们的QT测试例程准备完毕。

三 编译QT

要想打包程序,那么得先将QT程序编译成可执行文件;编译分“Debug”和“Release”两个版本;对于需要打包的程序来说,一般都是编译Release版本。

QT界面左下方,可选择编译的版本,选择“Release”,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第14张图片
选择"Release"完成后,就可点击下方的编译按键,进行编译,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第15张图片
有弹框保存,点击“Save All”即可,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第16张图片
等待编译完成后会显示程序界面,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第17张图片
同时,在存放工程的路径下会生成编译的数据文件,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第18张图片

四 打包QT执行文件

4.1 准备构建QT执行文件

首先,在xxx/Desktop\QT_TEST 目录下新建一个文件夹,名为“APP”,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第19张图片

将Release输出目录下的执行文件复制到APP文件夹中,如下图:

<QT开发> QT开发工具-之-QT应用程序打包_第20张图片

<QT开发> QT开发工具-之-QT应用程序打包_第21张图片
这时如果单独运行“QT_TEST.exe”,是会提示错误的,找不到对应的依赖文件库等;如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第22张图片
这时就是要使用QT自带的windeployqt 工具,来生成依赖的文件。

4.2 使用windeployqt 构建QT执行文件依赖库

打开QT commend,如下图:
注意:这里选择的cmd 要与 构建QT的kit版本保持一致。笔者用的是"MinGW 64 bit"
<QT开发> QT开发工具-之-QT应用程序打包_第23张图片
打开后如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第24张图片
输入以下命令切换到APP目录下:

G:\WorkSoft\QT6.2\6.2.4\mingw_64>C:                                                                                                                                                                                                             C:\Windows\System32>CD ../..                                                                                                                                                                                                                    C:\>cd Users\XX\Desktop\QT_TEST\APP                                                                                                                                                                                                             C:\Users\XX\Desktop\QT_TEST\APP> 

<QT开发> QT开发工具-之-QT应用程序打包_第25张图片

使用windeployqt 工程,生成关联的QT库文件到当前目录下,命令如下:

windeployqt  QT_TEST.exe

<QT开发> QT开发工具-之-QT应用程序打包_第26张图片
执行完成后,会生成一些依赖文件,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第27张图片
此时双击“QT_TEST.exe”,即可运行该QT程序,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第28张图片
但是这样是就有一个比较麻烦的地方,就是如果需要把这个“QT_TEST.exe”给到其它人,那么其所依赖的文件也要一起给出才行,这样就显得有些拖泥带水了。
为了方便,我们需要将“QT_TEST.exe” 包括“APP“文件夹下 的整个内容打包成一个.exe文件,这样单独的一个执行文件就可直接运行了。

4.3 使用Enigma Virtual Box工具打包QT执行文件

下载Enigma Virtual Box,该软件是免费的,下载地址:官网
打开后,选择”Enigma Virtual Box“的”Download“下载安装包。笔者已下载的安装包【Enigma Virtual Box】如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第29张图片
安装完成后打开该软件,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第30张图片
<QT开发> QT开发工具-之-QT应用程序打包_第31张图片
根据下图选择,并配置:
<QT开发> QT开发工具-之-QT应用程序打包_第32张图片
①:找到对应的执行文件QT_TEST.exe,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第33张图片
②:在①选择完成的基础上会默认一个输出路径,也可手动修改输出路径,笔者设置如下图:
在这里插入图片描述

③:添加打包文件,选择APP文件夹
<QT开发> QT开发工具-之-QT应用程序打包_第34张图片
<QT开发> QT开发工具-之-QT应用程序打包_第35张图片
<QT开发> QT开发工具-之-QT应用程序打包_第36张图片
<QT开发> QT开发工具-之-QT应用程序打包_第37张图片
④:选择”Compress files“ 压缩文件,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第38张图片
⑤:点击”Precess“,等待打包完成即可,如下图:
<QT开发> QT开发工具-之-QT应用程序打包_第39张图片
<QT开发> QT开发工具-之-QT应用程序打包_第40张图片
打包完成后点击”Close“关闭即可,也可直接点击”Run“运行验证。

五 运行验证

打开QT_TEST文件夹,如下:
<QT开发> QT开发工具-之-QT应用程序打包_第41张图片
双击”QT_TEST_boxed.exe“运行:
<QT开发> QT开发工具-之-QT应用程序打包_第42张图片
验证可知,打包后的执行文件”QT_TEST_boxed.exe“可单独运行;

后续就可以将”QT_TEST_boxed.exe“传给其它PC运行,而不用关注运行依赖库了。

六 总结

本文主要是讲解QT程序打包步骤,方便QT执行文件的发布使用,如果不足,欢迎沟通交流。

你可能感兴趣的:(QT开发,qt,windows,c++)