在Windows平台上开发完qt c++桌面应用程序以后,需要制作一个安装包,方便生产和刻盘交货,本文记录相关流程。
目录
一、安装Qt Installer Framework
二、准备可执行程序
2.1 生成Release程序
2.2 完成依赖库拷贝
三、创建安装包程序
一、安装Qt Installer Framework
Qt Installer Framework是Qt官方提供的一组工具和实用程序,用于创建安装程序,可以在所有受支持的桌面Qt平台上完成安装包制作,无需重写源代码。具体受支持平台包括:Linux,Windows和OS X。
下载链接:Index of /official_releases/qt-installer-framework
打开以后选择一个较新的版本即可,本文选择的是4.8.0,如下图所示:
单击进入下载详情页面。由于本文是在windows平台上制作,因此选择exe程序进行下载,如下图所示:
下载完成后双击该安装包,按照提示默认安装即可完成(安装路径中不要出现中文或特殊符号)。本文将其安装在了下面的路径:
D:\toolplace\qt_installer_framework
二、准备可执行程序
2.1 生成Release程序
先要在release模式下编译运行程序,生成release版本,也就是发布版本。在release文件下找到可执行文件exe,一般路径如下所示
E:\Qt_Project\build-faceEval-Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release\faceEval.exe
然后把这个exe文件单独拷贝到一个空的文件夹中,如下所示(路径中不要出现中文):
D:\project\faceEval.exe
2.2 完成依赖库拷贝
接下来使用Qt自带的打包工具windeployqt对应用程序进行打包,其本质就是把一些Qt的库或者依赖项添加进行来。
从电脑左下角的开始菜单打开Qt的命令行界面Qt 5.15.2 (MSVC 2019 64-bit),如下图所示:
输入命令如下:
windeployqt D:\project\faceEval.exe
这时候qt会自动将依赖的qt库文件导入到新建的文件夹下面。如果开发的程序还依赖其它第三方库(非qt),比如OpenCV,那么就把对应需要的相关dll文件或资源导入到新建的文件夹下面。
最后双击可执行程序验证下能否正常启动,运行是否正常。
三、创建安装包程序
Qt Installer Framework安装目录的examples文件夹下面有很多的安装程序实例,可以将其复制一份出来。本文使用的示例是D:\toolplace\qt_installer_framework\examples\startmenu。将整个的startmenu复制一份出来。
首先将第二步整理出来的文件全部复制到startmenu\packages\org.qtproject.ifw.example\data文件夹里,注意是和exe同一级目录的所有文件。
接下来修改配置文件,在startmenu/config
目录下,有一个config.xml
文件,使用文本编辑器打开,根据自己的需求进行修改,如下图所示:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>智能识别程序</Name>
<Version>1.0</Version>
<Title>智能识别程序——安装向导</Title>
<Publisher>微星技术开发有限公司</Publisher>
<!-- Directory name is used in component.xml -->
<StartMenuDir>智能识别程序</StartMenuDir>
<TargetDir>@HomeDir@/det</TargetDir>
</Installer>
相关定义如下:
- < Name> 软件名称
- < Version> 版本号
- < Title> 安装程序窗口标题
- < Publisher> 发布者名称
- < StartMenuDir> 要生成的windows开始菜单目录
- < TargetDir> 默认安装路径
接下来修改包信息文件,找到startmenu\packages\org.qtproject.ifw.example\meta下package.xml文件,使用文本编辑器打开,根据自己的需求进行修改,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>README.txt</DisplayName>
<Description>A README.txt, accessible through a start menu entry.</Description>
<Version>V1.0</Version>
<ReleaseDate>2024-09-01</ReleaseDate>
<Default>true</Default>
<Script>installscript.qs</Script>
</Package>
相关说明如下:
- < DisplayName> 显示的名称
- < Description> 描述
- < Version> 部件的版本号
- < ReleaseDate> 发行日期
- < Licenses> 许可信息名称以及许可文件名
- <Default>默认是否选中协议
- < Script> 脚本文件
- < UserInterfaces> 额外的界面(如果需要的话,而且需要去installscript.qs中配置)
最后修改qs文件,找到startmenu\packages\org.qtproject.ifw.example\meta下installscript.qs文件,使用文本编辑器打开,根据自己的需求进行修改,如下所示:
function Component()
{
// default constructor
}
Component.prototype.createOperations = function()
{
// call default implementation to actually install README.txt!
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation("CreateShortcut", "@TargetDir@/faceEval.exe", "@StartMenuDir@/智能识别程序.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
component.addOperation("CreateShortcut", "@TargetDir@/faceEval.exe", "@DesktopDir@/智能识别程序.lnk");
}
}
到这里准备工作就基本完成了。接下来添加环境变量,将Qt Installer Framework安装文件下的bin路径添加到系统环境变量中。
从电脑左下角的开始菜单打开Qt的命令行界面Qt 5.15.2 (MSVC 2019 64-bit),然后通过cd命令进入到startmenu目录,输入下面的命令完成制作:
binarycreator.exe -c config/config.xml -p packages install.exe -v
然后在startmenu目录下就会生成安装包了,如下图所示:
后面只需要把这个install.exe刻盘交给用户即可,用户双击这个安装包就能正常安装软件了。