Qt软件发布(版本信息,Release版程序,代码打包,制作安装包)
序言
当我们完成了Qt程序的开发,希望交予测试,或是正式发布的时候,需要将我们的程序进行层层封装,最终以一个安装包的形式呈现给用户。专业版的软件发布,以Qt软件为例,需要三个步骤:生成版本信息,生成Release版程序,代码打包和制作安装包。本篇将分别对上述三个步骤展开描述。
工作环境
- 操作系统: Windows 10
- Qt版本:Qt 5.12.12
添加版本信息
Qt的版本信息配置在项目文件.pro中,编辑该文件,在文件中编辑一些Qt自带的宏,即可实现版本信息的生成。
#程序版本
VERSION = 1.0.0
#程序图标
RC_ICONS = icon.ico
#公司名称
QMAKE_TARGET_COMPANY = "mycompany"
#程序说明
QMAKE_TARGET_DESCRIPTION = "mysoftware"
#版权信息
QMAKE_TARGET_COPYRIGHT = "Copyright(C) 2022"
#程序名称
QMAKE_TARGET_PRODUCT = "app"
#程序语言
#0x0800代表和系统当前语言一致
RC_LANG = 0x0800
其中,程序图标ico的存放位置应和.pro文件位于同一目录下。ico图标可以在线通过其他图片格式转换生成。
编辑完毕后,生成的可执行程序就已经是ico图标的样式了,右键它,【属性】-【详细信息】就可以看到前面编辑的版本信息了。
生成Release版程序
Qt的发布版使用编译器中的Release选项编译。Debug和Release版本,对于程序来说就是链接到不同版本的Qt的动态链接库。Debug版本使用的Qt库以d
结尾,如Qt5Cored.dll
,Qt5Guid.dll
等,而Release版则没有这个d
。Release版本的动态链接库通常比Debug版本的文件容量小得多。
生成Release版程序也很简单,如果使用Qt Creator的话,只用在左下角的构建选项中选择【Release】即可。完成可执行程序生成后,直接鼠标双击会发现提示缺少一些dll文件(而Qt Creator下却可运行),这是因为Windows可执行程序的执行机制是链接到同级目录下的所有所需dll文件,exe才可执行。在本地电脑找到编译Qt生成的dll库,将所需的dll库放在exe的同级目录下,再添加各人项目所需的第三方dll库,双击程序即可运行。
代码打包
上述方式鼠标双击运行的程序,你会发现其中的资源信息都丢失了,图标无法显示出来(而在Qt Creator下显示正常)。我们需要通过Qt给出的打包方式进行代码打包。
我们需要新建一个空的文件夹,将上一步生成的可执行程序放进来。然后根据你Qt的编译器,选择Qt命令行打开。例如我使用MinGW,就打开Qt5.12.12(MinGW 7.3.0 64-bit)。
在终端中,切换到文件夹目录,如:cd C:/folder
,然后输入windeployqt app.exe
。然后Qt就会开始自动打包,将所需的一些dll库、资源文件等打包到当前目录下。打包过程无法将你的其他第三方库也打包进来,因此你还是要双击运行,根据提示将缺失的dll库导入到该目录下。发布Release版本的使用命令windeployqt app.exe --release
完成这一步后,一个完整的软件包就制作完成了,双击运行发现资源文件也能被成功加载了。
制作安装包
为了进一步增强软件包的封装性,并给予用户安装软件的相关选择能力,还需要制作安装包程序,给我们的程序再套一层壳子。方便起见,这一步我们直接使用三方安装包制作工具。
这里使用Inno Setup,Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。
可访问Inno Setup官方网站下载软件 https://jrsoftware.org/isdl.php,选择适合你操作系统的软件版本。
- 安装后打开,选择【Creator a new script file using the Sciript Wizard】
然后开始按照Inno Setup的流程填写安装包信息。
填写安装包可执行程序的应用信息。这些内容在安装包生成后,鼠标划到安装包程序上会显示。
填写默认安装路径。选择自定义方式(Custom),然后填写生成路径。这个路径是安装过程中,默认的程序安装路径,用户可以自行选择是否改变。对于用户来说,路径不存在时会自动创建。
包含打包文件。这一步就要把前面我们打包好的代码导入到其中。在【Application main executable file】中选择前面生成的可执行程序。选择【Add folder…】,选择可执行程序所在的目录,选择包含目录下的子目录文件。
再下一步直接点击【Next】。应用捷径。这一步可以选择自定义一些安装时的选项,并提供给用户选择。
后面一直选择【Next】就行。选择编译选项。选择生成位置,这一步的生成位置就是安装包生成的路径。此处可以添加一个ico图标作为安装包的图标。密码不建议填。
后续一路点击【Next】,直到【Finish】完成。运行安装包生成脚本。上述所有工作都是为了自动化生成这个安装包生成脚本。这是一个.iss的脚本文件,先把这个脚本保存下来,然后点击运行,自动生成软件安装包的工作就开始了。
等待一会,安装包就生成好了。
至此,软件安装包就制作完毕了。跟我们平时熟悉的软件一样,用户可以通过这个安装包,将我们打包的程序安装在用户指定的路径,双击可执行程序图标,运行程序了。
Qt软件发布(版本信息,Release版程序,代码打包,制作安装包)相关推荐
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- 软件发布版本区别介绍-Alpha,Beta,RC,Release
标签: Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha ...
- VC下发布的Release版程序的异常捕捉
VC下发布的Release版程序的异常捕捉寻找Release版程发生异常退出的地方比Debug版麻烦得多.发生异常的时候windows通常会弹出一个错误对话框,点击详细信息,我们能获得出错的地址和大概 ...
- 软件发布版本区别介绍
Alpha: Alpha 是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是 ...
- Qt的开源版本与商业版区别及LGPL与闭源程序
原文地址:http://blog.51cto.com/devbean/313477 最近一直在学习 Qt.Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的( ...
- LabVIEW编程技巧:如何制作安装包程序
目录 一.LabVIEW中制作安装程序的方法 二.生成应用程序(EXE程序) 二.制作安装包程序 三.总结 当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用 ...
- Qt for Android / ios 将图片或文件打包进安装包中
概述 用 Qt 做程序开发,图片或翻译文件的引用有两种方式,一种是直接引用,本地图片, 一种是编译到资源文件中,其实直接添加在资源文件中是最方便的,不需要考虑文件存放的问题,但是这样可能带来的问题是启 ...
- inno setup打包的安装包如何在卸载完程序后可以继续安装_这两个方法就够了!快速制作Python程序Windows安装包...
点击关注州的先生 编程应用.实战教程,不容错过 /00/ 前言 我们使用Python可以编写很多提高工作和学习效率的小工具,在编写完之后,如果我们想将其分享给更多的人使用,那么最便捷的方法就是将其打包 ...
- 基于deepin-wine的windows软件打包deb安装包教程(本實例安裝qq)
1.安装7z.wine sudo apt install p7zip deepin-wine5 -y 2.用deepin-wine新建一个纯净的32位容器,安装相应的软件 WINEARCH=win32 ...
最新文章
- 计算机考研考编程,计算机考研面试------编程语言
- Python中的高阶变量
- python多线程并发写入_Python多线程并发的简单测试
- day 59Bootstrap自带图表和fontawesome图标 导航和导航条 Bootstrap常用插件 sweetalert插件介绍...
- ORM + 数据库链接池
- Linux基本命令学习笔记
- css position, display, float 内联元素、块级元素
- iOS 几种打包方式
- 【知乎问答】有哪些特殊的搜索引擎?
- 【盒子居中常用的四种方法】
- xposed的总开关
- 线程有哪些状态?创建、就绪、运行、阻塞和死亡
- 我与OutLook有个约会
- java输出99乘法表
- 《数据修复技术与典型实例实战详解》——1.4 分区表的修复
- 圣斗士星矢游戏抽奖计算机怎么计算,圣斗士星矢手游抽奖概率是多少 抽奖概率公布[多图]...
- 《精通QTP——自动化测试技术领航》—第1章1.2节帮助文档(HELP)-QTP的说明书...
- spwm控制算法c语言实现,SPWM波形优化算法及其DSP实现
- 合肥32中学2021高考成绩查询,2021年合肥高中录取分数线是多少及高中排名榜
- 【微信小游戏实战】零基础制作《欢乐停车场》一、游戏设计