引言

一、.程序封装打包的原因:
1.闭源,防止他人直接查看源代码;
2.脱离qt平台,无需在使用时运行qt,可在无qt环境下使程序运行。
二、本文使用的打包方法步骤为:
release->Qt for Desktop->Enigma Virtual Box

具体步骤

一、使用release构建程序

QT MySQL 应用程序打包 qt程序如何打包_Qt


然后运行。

此时查看工程路径中release中产生的.exe文件,如果未能成功,则查看

QT MySQL 应用程序打包 qt程序如何打包_Desktop_02


将构建目录修改为工程路径,重新构建,如未成功,请查找其他问题

然后找到release目录下的.exe文件,转存到单独文件夹.

Qt for Desktop配置动态链

1.打开Qt for Desktop

QT MySQL 应用程序打包 qt程序如何打包_封装_03


2.cd命令进入到单独文件夹路径

>cd D:\Qtprojects\folder #D:\Qtprojects\folder为单独文件夹路径

QT MySQL 应用程序打包 qt程序如何打包_Qt_04


3.使用windeployqt命令

>windeployqt testapp.exe #testapp.exe为单独文件夹中保存的release后的.exe文件

则会出现如下内容:

QT MySQL 应用程序打包 qt程序如何打包_Desktop_05


QT MySQL 应用程序打包 qt程序如何打包_QT MySQL 应用程序打包_06


此时可以看到单独文件夹内多出许多动态链,此时打开.exe可以正常运行。

则基本功能实现,可将此文件夹整个压缩发送,则其他无qt环境的系统中也可以使用,一般到这一步就OK。

此时文件中生成了子文件夹translations,其中为各国翻译语言包,可以删去,其余文件需要保留。(实际上确实还有多余的包,但是尚不明确)

至此可以完成打包和发布。

Enigma Virtual Box将.exe和动态链整合压缩为单一程序文件(绿色版)

官网:https://www.enigmaprotector.com/en/aboutvb.html 下载地址:https://www.enigmaprotector.com/en/downloads.html 或者点击直接下载

主界面如图所示:

QT MySQL 应用程序打包 qt程序如何打包_Qt_07


点击文件选项,可以压缩文件。

QT MySQL 应用程序打包 qt程序如何打包_Qt_08


点击左下角 增加…,添加除.exe外的所有文件和子文件夹,同样的,translation可以不添加。

QT MySQL 应用程序打包 qt程序如何打包_QT MySQL 应用程序打包_09


其中可能出现如下提示框,默认确定

QT MySQL 应用程序打包 qt程序如何打包_封装_10


选择待封装包的主程序以及另存名称;

QT MySQL 应用程序打包 qt程序如何打包_Qt_11


结果如下图,点击运行,可以启动程序。

QT MySQL 应用程序打包 qt程序如何打包_Qt_12


至此完成绿色版封装。