<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 Creator”;笔者安装的是“Qt Creator 9.0.2”,所以就选择这个了。
打开后界面如下:
点击 :创建项目 ,参考下图笔者选择即可,如果有其他要求可自行创建。
输入项目名称可存储路径,笔者这里就存在前面桌面创建的QT_TEST目录中,如下图:
选择qmake编译程序,当然读者有要求也可以选用cmake等,如下图:
生成模板程序的,主界面类名称和文件名等的设置,这些都是用默认的名称即可,如下图:
选择是否翻译的语言,这里就选“无”,有要求的读者,可自行选择。如下图:
选择编译使用的kit工具,笔者选择6.2.4 64bit 如下图,按需选择即可;
项目管理配置,默认选择“无”即可,如下图:
点击完成后,就会自动打开前面配置的QT工程了,如下图:
2.2 添加UI
在2.1小节打开的界面中,双击“mainwindow.ui”这个文件,就会进入UI编辑界面,如下图:
将左侧的控件,拖拽到右侧空白区域,读者可自行选择,笔者操作如下图:
至此我们的QT测试例程准备完毕。
三 编译QT
要想打包程序,那么得先将QT程序编译成可执行文件;编译分“Debug”和“Release”两个版本;对于需要打包的程序来说,一般都是编译Release版本。
QT界面左下方,可选择编译的版本,选择“Release”,如下图:
选择"Release"完成后,就可点击下方的编译按键,进行编译,如下图:
有弹框保存,点击“Save All”即可,如下图:
等待编译完成后会显示程序界面,如下图:
同时,在存放工程的路径下会生成编译的数据文件,如下图:
四 打包QT执行文件
4.1 准备构建QT执行文件
首先,在xxx/Desktop\QT_TEST 目录下新建一个文件夹,名为“APP”,如下图:
将Release输出目录下的执行文件复制到APP文件夹中,如下图:
这时如果单独运行“QT_TEST.exe”,是会提示错误的,找不到对应的依赖文件库等;如下图:
这时就是要使用QT自带的windeployqt 工具,来生成依赖的文件。
4.2 使用windeployqt 构建QT执行文件依赖库
打开QT commend,如下图:
注意:这里选择的cmd 要与 构建QT的kit版本保持一致。笔者用的是"MinGW 64 bit"
打开后如下图:
输入以下命令切换到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>
使用windeployqt 工程,生成关联的QT库文件到当前目录下,命令如下:
windeployqt QT_TEST.exe
执行完成后,会生成一些依赖文件,如下图:
此时双击“QT_TEST.exe”,即可运行该QT程序,如下图:
但是这样是就有一个比较麻烦的地方,就是如果需要把这个“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_TEST.exe,如下图:
②:在①选择完成的基础上会默认一个输出路径,也可手动修改输出路径,笔者设置如下图:
③:添加打包文件,选择APP文件夹
④:选择”Compress files“ 压缩文件,如下图:
⑤:点击”Precess“,等待打包完成即可,如下图:
打包完成后点击”Close“关闭即可,也可直接点击”Run“运行验证。
五 运行验证
打开QT_TEST文件夹,如下:
双击”QT_TEST_boxed.exe“运行:
验证可知,打包后的执行文件”QT_TEST_boxed.exe“可单独运行;
后续就可以将”QT_TEST_boxed.exe“传给其它PC运行,而不用关注运行依赖库了。
六 总结
本文主要是讲解QT程序打包步骤,方便QT执行文件的发布使用,如果不足,欢迎沟通交流。