• QT Installer Framework 打包程序


    文件准备

    1. 编译程序 Release 版本,拷贝生成的 exe 到某个目录下。

    2. 拷贝依赖库到上面的文件夹:

    • 根据自己实际使用的编译器,打开终端,执行 windeployqt D:installer est.exe

    这里列举出了程序的依赖库,但是没有自动拷贝到 test.exe 的目录下,我们可以手动拷贝上面的依赖库,根据使用的编译器版本选择相应的库,我的是 D:Qt5.14.0mingw73_32in

    此时,可以尝试运行一下 exe 看是否缺少依赖库或插件,我的运行之后发现:

    解决办法是将对应使用的编译器版本的libstdc++-6.dll 也拷贝到上面的文件夹。

    上面的程序如果双击可以直接运行则证明库和插件已满足,但是由于电脑配置不同,可以借助另一台电脑测试一下,或者使用 Dependency 查看程序的依赖库:

    如果不需要增加其他的附件文件,这样就可以了,如果需要增加用户手册、配置文件、License 这样的文件,可以添加到此文件目录下。

    程序打包

    参考官方文档

    下载 Qt Installer Framework 安装。

    直接从安装路径下拷贝一个example,例如拷贝一个 startmenu 的例子,重命名为 test_Installer:

    把前面打包过的文件全部复制到 packages下面的 data 文件夹里,注意是和 exe 同一级目录的所有文件。

    其中的文件组织形式:

    修改配置文件,在config目录下,有一个config.xml文件,使用文本编辑器打开,根据自己的需求进行修改:

    < Name> 软件名称
    < Version> 版本号
    < Title> 安装程序窗口标题
    < Publisher> 发布者名称
    < StartMenuDir> 要生成的windows开始菜单目录
    < TargetDir> 默认安装路径
    

    修改包信息文件,在packages目录下,有一个package.xml文件,使用文本编辑器打开,根据自己的需求进行修改:

    < DisplayName> 显示的名称
    < Description> 描述
    < Version> 部件的版本号
    < ReleaseDate> 发行日期
    < Licenses> 许可信息名称以及许可文件名
    <Default>默认是否选中协议
    < Script> 脚本文件
    < UserInterfaces> 额外的界面(如果需要的话,而且需要去installscript.qs中配置)
    

    修改 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@/test.exe", "@StartMenuDir@/MegPadUi.lnk");
            component.addOperation("CreateShortcut", "@TargetDir@/test.exe", "@HomeDir@/Desktop/test.lnk");
            component.addOperation("CreateShortcut", "@TargetDir@/maintenancetool.exe", "@StartMenuDir@/Remove.lnk");
        }
    }
    

    CMD 执行:

    C:QtQtIFW-3.2.2ininarycreator -c configconfig.xml -p packages test.exe -v
    

    最终生成安装包:

  • 相关阅读:
    各类免费资料及书籍索引大全(珍藏版)
    转—如何写一篇好的技术博客
    如何写技术博客
    Spring + Spring MVC + Mybatis 框架整合
    Httpclient 4.5.2 请求http、https和proxy
    HttpClient4.5.2 连接池原理及注意事项
    php加密数字字符串,使用凯撒密码原理
    php 阿里云视频点播事件回调post获取不到参数
    Nginx代理后服务端使用remote_addr获取真实IP
    记录:mac的浏览器访问任何域名、网址都跳转到本地127.0.0.1或固定网址
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12535149.html
Copyright © 2020-2023  润新知