赞
踩
在上一篇文章中简单介绍了Qt IFW的优势,并且介绍了如何下载安装软件,那么,在本篇中来看一下如何使用IFW创建一个最简单的应用安装包,并介绍一些基本用法。
在介绍之前我们首先跑一个Qt IFW安装过后自带的一个示例,以startmenu为例,打开安装目录下的example文件夹:
找到startmenu示例:
其目录结构是这样的:
是不是很熟悉,pro文件,不就是Qt的工程文件吗, 这和一个常规的Qt工程项目差不多,那么直接在Qt creator中打开这个startmenu.pro文件,目录结构如下:
然后二话不说,直接编译运行,运行后会弹出一个对话框:
别管它,回到文件夹中找到刚刚编译生成的文件,会发现生成了一个install.exe
ok,这就是最终生成出来的安装包,直接双击运行:
欢迎页面:
选择安装目录
选择需要安装的组件
开始菜单快捷方式
准备安装
这就完成了整个安装流程。
以上演示了最基础的一个打包流程,那么接下来开始分析目录结构以及配置文件。
还是以上面的示例来讲解,其目录结构为:
这里主要包含了两个文件夹,config
和packages
,其中config
下面有一个config.xml
文件,packages下面的meta目录包含package.xml和installscript.qs文件
其中,这里最重要的两个文件就是config.xml
和package.xml
前面通过运行Qt IFW自带的示例已经对打包文件目录结构及基本的运行流程有了大致的了解,那么接下来就看看如何创建一个自己的安装程序。
创建安装程序必须完成的以下任务:
在config目录中,创建一个config.xml包含以下内容的文件:
基本信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>Your application</Name>
<Version>1.0.0</Version>
<Title>Your application Installer</Title>
<Publisher>Your vendor</Publisher>
<StartMenuDir>Super App</StartMenuDir>
<TargetDir>@HomeDir@/InstallationDirectory</TargetDir>
</Installer>
说明:
配置文件中所有可配置项,请参考这里
要向安装程序提供有关组件的信息,需要创建一个package.xml文件,并包含以下内容,并将其放置在meta目录中:
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>The root component</DisplayName>
<Description>Install this example.</Description>
<Version>0.1.0-1</Version>
<ReleaseDate>2010-09-21</ReleaseDate>
<Licenses>
<License name="Beer Public License Agreement" file="license.txt" />
</Licenses>
<Default>script</Default>
<Script>installscript.qs</Script>
<UserInterfaces>
<UserInterface>page.ui</UserInterface>
</UserInterfaces>
</Package>
关于包信息文件的详细写法,请参考这里
以下元素的信息显示在组件选择页面上:
该元素可以在用户可用时向他们推广更新。
<License>元素指定包含用于显示的许可检查页面上的许可协议的文本文件的名称:
<Default>元件指定组件是否是默认选中。该值true将组件设置为选中状态。
将所有需要打包的文件全部拷贝到data目录下去。
一切准备就绪,开始通过命令行来进行最后的打包动作,在终端通过命令行 切换到Qt IFW安装目录中的bin目录下去,然后执行:
binarycreator.exe -c config\config.xml -p packages YourInstaller.exe
config\config.xml 是上面创建好的配置文件。
执行完命令后就会自动生成一个安装包exe。这就是最终想要的文件。
当然,也可以像自带示例那样,直接创建一个工程文件,然后在Qt creator中编译即可自动生成。
以下是工程文件pro的内容示例:
TEMPLATE = aux
INSTALLER = installer
INPUT = $$PWD/config/config.xml $$PWD/packages
example.input = INPUT
example.output = $$INSTALLER
example.commands = ../../bin/binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT}
example.CONFIG += target_predeps no_link combine
QMAKE_EXTRA_COMPILERS += example
OTHER_FILES = README
其原理也是执行binarycreator 命令,就不再赘述了。
ok,以上就是整个Qt IFW打包流程的基本介绍,接下来会在下一篇文章中通过一个实际的项目来做打包文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。