• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    其中,程序图标ico的存放位置应和.pro文件位于同一目录下。ico图标可以在线通过其他图片格式转换生成。
    编辑完毕后,生成的可执行程序就已经是ico图标的样式了,右键它,【属性】-【详细信息】就可以看到前面编辑的版本信息了。

    生成版本信息

    生成Release版程序

    Qt的发布版使用编译器中的Release选项编译。Debug和Release版本,对于程序来说就是链接到不同版本的Qt的动态链接库。Debug版本使用的Qt库以d结尾,如Qt5Cored.dllQt5Guid.dll等,而Release版则没有这个d。Release版本的动态链接库通常比Debug版本的文件容量小得多。

    Qt库

    生成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)。

    打开Qt编译器
    在终端中,切换到文件夹目录,如: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,选择适合你操作系统的软件版本。

    1. 安装后打开,选择【Creator a new script file using the Sciript Wizard】
      新建脚本

    然后开始按照Inno Setup的流程填写安装包信息。

    1. 填写安装包可执行程序的应用信息。这些内容在安装包生成后,鼠标划到安装包程序上会显示。
      安装包版本信息

    2. 填写默认安装路径。选择自定义方式(Custom),然后填写生成路径。这个路径是安装过程中,默认的程序安装路径,用户可以自行选择是否改变。对于用户来说,路径不存在时会自动创建。
      编辑生成路径

    3. 包含打包文件。这一步就要把前面我们打包好的代码导入到其中。在【Application main executable file】中选择前面生成的可执行程序。选择【Add folder…】,选择可执行程序所在的目录,选择包含目录下的子目录文件。
      包含打包文件
      再下一步直接点击【Next】。

    4. 应用捷径。这一步可以选择自定义一些安装时的选项,并提供给用户选择。
      自定义用户选项
      后面一直选择【Next】就行。

    5. 选择编译选项。选择生成位置,这一步的生成位置就是安装包生成的路径。此处可以添加一个ico图标作为安装包的图标。密码不建议填。
      选择编译选项
      后续一路点击【Next】,直到【Finish】完成。

    6. 运行安装包生成脚本。上述所有工作都是为了自动化生成这个安装包生成脚本。这是一个.iss的脚本文件,先把这个脚本保存下来,然后点击运行,自动生成软件安装包的工作就开始了。
      等待一会,安装包就生成好了。

    安装包生成完毕
    至此,软件安装包就制作完毕了。跟我们平时熟悉的软件一样,用户可以通过这个安装包,将我们打包的程序安装在用户指定的路径,双击可执行程序图标,运行程序了。

  • 相关阅读:
    quarkus依赖注入之一:创建bean
    注解、AOP
    在 Solidity 中 ++i 为什么比 i++ 更省 Gas?
    非比较排序------计数排序
    MySQL安装教程-手把手教你安装
    【PyCharm Community Edition】:分析map文件统计RAM及ROM的使用
    容器环境下php进程与bash进程树关系
    py18_Python 文件目录管理以及文件编码声明
    Redis基础-概念和基础
    粮食淘洗机结构设计(说明书+任务书+开题+文献综述+翻译及原文+cad图纸)
  • 原文地址:https://blog.csdn.net/nchu_zhangyiqing/article/details/126382934