qt 安装包生成2
使用Qt Installer Framework制作安装包
步骤
制作安装包的步骤:
- 去官网下载Qt Installer Framework的安装包并安装(已经安装的请跳过这步)
 - 使用windeployqt.exe集齐所需依赖
 - 使用binarycreator.exe创建安装包
 
具体操作流程:
安装Qt Installer Framework
下载地址:http://download.qt.io/official_releases/qt-installer-framework/
 
 
 
搜集依赖
- 使用Release模式构建项目 
 
 - 在release目录下删掉不必要的文件 

 - 运行windeployqt.exe命令
 
[windeployqt.exe路径] --release --qml --qmldir [qml源码路径] [exe文件路径]
- 1
 

如在我的环境下是
D:\Qt\Qt5.11.0\5.11.0\mingw53_32\bin\windeployqt.exe --release --qml --qmldir D:\src\qml\huorong\ huorong.exe
- 1
 
- 手动拷贝其他的dll
 
我使用的是mingw53_32,需要拷贝以下文件
libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll

创建安装包
- 将上面搜集的依赖拷贝到
installer\packages\cn.net.pikachu.huorong\data文件夹下
 - 运行binarycreator.exe命令
 
[binarycreator.exe路径] -c [config.xml路径] -p [packages路径] [生成的安装程序exe文件名] -v
- 1
 

如在我的环境下是
D:\Qt\QtIFW-3.0.4\bin\binarycreator.exe -c installer/config/config.xml -p installer/packages huorong_install.exe -v
- 1
 
最后的演示效果

思考与总结
如果Qt提供一键生成安装包就好了,何必这么麻烦呢?应该可以把这些操作用脚本写好,然后集成到QtCreator中。
附:
配置文件
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>火绒安全软件</Name>
    <Version>0.1.0</Version>
    <Title>火绒安全软件</Title>
    <Publisher>大黄老鼠</Publisher>
    <!-- Directory name is used in component.xml -->
    <StartMenuDir>pikachu</StartMenuDir>
    <TargetDir>@HomeDir@/pikachu/huorong</TargetDir>
</Installer>
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 
package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>火绒安全软件</DisplayName>
    <Description>可执行文件</Description>
    <Version>0.1.0-1</Version>
    <ReleaseDate>2018-07-01</ReleaseDate>
    <Default>true</Default>
    <Script>installscript.qs</Script>
    <ForcedInstallation>true</ForcedInstallation>
</Package>
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 
installscript.qs
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
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@/huorong.exe", "@StartMenuDir@/火绒安全软件.lnk",
            "workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
            "iconId=2", "description=Open README file");
        component.addOperation("CreateShortcut", "@TargetDir@/huorong.exe", "@HomeDir@/Desktop/火绒安全软件.lnk");
        component.addOperation("CreateShortcut", "@TargetDir@/maintenancetool.exe", "@StartMenuDir@/更新或卸载 火绒安全软件.lnk");
    }
qt 安装包生成2的更多相关文章
- qt 安装包生成
		
(Qt Installer Framework)程序简易打包教程 2017年06月19日 14:38:47 carman_风 阅读数:3559 标签: installerqt框架 更多 个人分类: 软 ...
 - Linux安装包生成工具:checkinstall、makeself
		
关键词:checkinstall.dpkg.deb/rpm.makeself等等. checkinstall记录make install安装的文件,生成相应的(Slackware/RPM/Debian ...
 - VS2008 Windows Form项目安装包生成详解
		
2008 Windows Form项目的发布对有经验的程序员来说,可能不值一提,但对很多新手来说却不知道如何操作,因为在很多关于Visual Studio的书籍中也没有相关介绍,权威如<C# 2 ...
 - 下载Qt安装包
		
http://download.qt.io/archive/qt/ 找到下载页面,选择View All Downloads,找你需要的版本
 - 基于InstallShield2013LimitedEdition的安装包制作
		
在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...
 - 使用VS2015制作安装包( 含相关的下载链接)
		
补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...
 - 使用Qt installer framework制作安装包
		
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
 - 使用Qt Installer Framework制作软件安装包
		
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
 - Qt之程序发布以及打包成exe安装包
		
一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...
 
随机推荐
- ELK日志收集
			
目前日志的痛点 运维要经常登陆到服务器上拿日志给开发.测试 每次都是出问题后才去看日志,不能提前通过日志预判问题 如果是集群服务,日志将要从多台机器取 开发人员搞出来的日志不规范,没有标准.日志目录不 ...
 - Android学习:AlertDialog对话框
			
AlertDialog可以生成各种内容的对话框,它生成的对话框包含4个区域:图标区,标题区,内容区,按钮区 <?xml version="1.0" encoding=&quo ...
 - 【CF434E】Furukawa Nagisa's Tree 点分治
			
[CF434E]Furukawa Nagisa's Tree 题意:一棵n个点的树,点有点权.定义$G(a,b)$表示:我们将树上从a走到b经过的点都拿出来,设这些点的点权分别为$z_0,z_1... ...
 - gitlab的fork及源项目的同步
			
此篇大部分貌似是cp其他地方的,也忘了出处,写到此处,权当保存,见谅. 测试代码master同步到生产代码master #现有git@gitlab.home.com:root/fork.git项目 ...
 - js的运用1
			
1.parselnt() 2.parsefloat() 遇到第一个字节是非数字就结束了. 3. var a="hello world" a这个变量是字符串了,对于里面 ...
 - Python学习之旅(三十四)
			
Python基础知识(33):网络编程(Ⅱ) UDP编程 相对TCP,UDP则是面向无连接的协议 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包 虽然用UDP传 ...
 - 有多个正整数存放在数组中,编写一个函数要求偶数在左边由小到大顺序放置,奇数在右边,也是由小到大顺序放置,Java实现
			
思路: * 1.首先分左右 * 2.分好再排序(左边和右边都单独排序) 第一步:分左右 可得注意了: 大体思路最先是从两头出发分成4种情况讨论(左or右,奇数or偶数)循环处理,出口是双层的嵌套循环( ...
 - C#获取邮件客户端保存的邮箱密码
			
有时候邮件客户端记录了邮箱密码,但自己却忘记了,此时可以使用C#建立一个临时的"邮件服务器",截取密码: IPEndPoint ipEndPoint = new IPEndPoin ...
 - HDU 1010生成树
			
求起点到终点的最短权值和
 - linux文件系统变为只读解决
			
linux控制台显示文件系统变为只读,需输密码或者按ctrl+d结束 输入root密码后执行fsck -y /dev/sda1,fsck -y /dev/sda2和fsck -y /dev/sda3等 ...