??说明:本文相关操作均基于 Windows10 操作系统 + Qt应用程序框架(5.14.1) + Qt Creator 集成开发环境(4.11.1) +MinGW编译环境,Qt 及 IDE的版本查询(Qt Creator菜单栏→帮助→About Qt Creator)。
一、.exe文件图标修改
??在打包发布程序之前,我们可能需要先给可执行程序(.exe文件)一个好看的图标。首先我们知道,可以通过 “Qt Creator IDE→设计→属性→windowIcon” 属性直接设置软件运行后的主窗体图标,或者直接通过setWindowIcon(QIcon("你的图片路径")) 函数也可以设置。但要设置生成的 .exe 文件的图标,则需要以下步骤。
- 选择适合你程序的 .ico 图标,推荐网址:阿里巴巴矢量图标库(免费),下载好后放到你的工程文件夹中。
- 新建myApp.txt文本文件在其中输入下面一行代码:
IDI_ICON1 ICON DISCARDABLE "myApp.ico"
- 然后修改后缀名 myApp.txt → myApp.rc (也可以直接在IDE中添加资源文件 “Add New→Qt→Qt Resource File”),将该文件放在工程文件夹中并添加到工程中(添加现有文件到工程)。
- 双击工程文件在最后添加如下一行代码:
RC_FILE += myApp.rc
- 最后,重新构建运行你的程序即可。
二、绿色便携版—打包教程
??绿色便携版提供一个文件夹,该文件夹可以拷贝到任意Windows系统的电脑上通过双击 .exe 文件直接运行,无需安装 Qt 环境。假设新建文件夹 ”GreenSoftwarePack“ ,步骤如下:
-
调整工程编译运行方式为 Release,如下图所示。 -
构建运行程序后,将出现相应的基于 release 版本构建的文件夹。 -
进入该文件夹下的 release 文件夹,找到 " 工程名.exe " 文件,将该 .exe 文件拷贝到绿色便携版文件夹 ”GreenSoftwarePack“ 。此时,如果你在安装 Qt 的时候将各种库的路径添加到了环境变量中,在你的本机上双击该 exe 文件,有可能是能运行成功的,但是直接把该文件拷贝给到别人的机器上是运行不了的,因为缺少相关的动态库文件,手动拷贝各种所需的库文件虽然也是一种解决方法,但没有这么干的 ( ?? ω ?? )y 。 -
为此,Qt 自带了一个拷贝 .exe 程序依赖库的工具 —— windeployqt 。按 Win+Q 键搜索 qt ,调出你的编译器,我用的是 MinGW,如果你安装 Qt 应用程序框架的时候把 bin 目录添加到了环境变量,也可以直接通过控制台进行下面的操作。 -
输入如下命令,跳转到你要打包的文件夹路径下(也就是刚刚创建的绿色便携包文件夹 GreenSoftwarePack)。
cd /d C:\Users\Administrator\Desktop\GreenSoftwarePack
- 输入命令:
windeployqt ***.exe ,其中***.exe是你的 .exe 文件名。windeployqt工具将把该exe程序所依赖的库文件拷贝到该文件夹下。 - 正常情况下,此时的绿色便携版文件夹已经可以拷贝到其他的机器上正常运行,但也有可能出现其他机器上仍然提示缺少xxx.dll的情况,这时,需要手动将该dll文件拷贝到该文件夹中。
??还有一种情况就是,当使用 SQLite 数据库的时候,即使按照上面的步骤将所有数据库相关的 .dll 拷贝到了文件夹中,但涉及数据库相关的所有功能仍然都无法使用。这时候,首先看看你的数据库文件有没有建立,即有没有成功创建出 xxx.db 文件,若数据库文件已经成功创建,则可能是源代码中的问题,请逐步调试,若数据库文件都没有创建成功,请参考我的这篇博客:(博客中的方法也可能适用于其他 xxx.dll 不存在的情况) Qt .exe文件打包发布,SQLite数据库无法使用?拷贝了dll也不行?
三、安装包版—打包教程
??绿色便携版提供一个 .exe 格式的可执行文件,运行该 exe 文件可以按照向导进行软件的安装,首先明确安装包版本的正常运行的前提是,上面的绿色便携版已经成功实现,双击其 exe 文件可以正常运行,且不存在问题。打包教程如下所示:
-
首先,我们要用到一个小软件:Inno Setup 。该软件为 Windows 程序提供免费的安装程序设计,且支持用脚本的方式修改程序安装设计步骤。Inno Setup 于 1997 年首次推出,如今在功能集和稳定性方面可与许多商业安装程序相媲美,甚至超过了许多。支持自 2006 年以来的每个 Windows 版本,包括现在最新的 Windows 11。 官方下载地址:Inno Setup 官方下载地址,下载后按步骤安装即可。 -
安装成功后,运行软件,关闭欢迎界面,点击 ”File>New…“ ,然后点击【Next】。 -
按照提示输入你的应用程序名称、版本、发布者、网站,然后点击【Next】,这些信息稍后会生成在脚本中,后期可以通过脚本进行修改。 -
定义打包文件的输出路径和输出文件夹的名称,然后点击【Next】 。 -
这时就用到了上面的绿色便携版,首先添加你要打包的应用程序的可执行文件,就是那个 .exe 文件,然后添加所有依赖的动态库文件、资源文件、配置文件,如下图中的红绿指示框所示。(可以把所有需要的文件放到一个文件夹里,然后点击 Add folder),点击【Next】。 -
点击【Next】。 -
创建快捷方式相关的选项,根据需要选择,点击【Next】。 -
选择 “许可文件”,“安装前的文件”(如下图左侧的Readme 文件等,会在启动安装程序后弹窗展示),“安装后显示信息” 等,点击【Next】。 -
选择安装模式是为计算机上所有用户安装,还是仅为当前用户安装等配置,点击【Next】。 -
选择安装语言,点击【Next】。 -
选择 “编译器输出文件夹”、“编译器输出基本文件名”、“安装程序图标文件”及“安装密码”,点击【Next】。 -
选择是否使用 #define 编译指令,选择 yes 也就是在生成的脚本里使用 #define 宏定义一些常量,方便脚本编写,勾不勾选随意,然后点击下一步; -
点击 finish ,开始进行脚本的生成,脚本中的相关信息就是根据上面那些设置产生的。 -
生成脚本后会提示是否立刻进行脚本的编译,可以直接编译,也可以自己看着修改一些内容,不用担心看不懂,就是上面设置的相关内容,看着修改即可,
??如果更新了软件版本,重新打包了应用程序的exe文件,可以不重复上述流程,直接将之前的 exe 文件替换掉,然后用之前生成的脚本文件运行,即可生成新版本的 exe 安装包文件,当然脚本可以略做修改,比如软件版本等信息。
??脚本编译的最后产出就是 exe 安装包文件,双击 exe 安装文件即可进行软件安装,该安装文件可以在任意 Windows 机器上运行。
|