Qt Installer Framework 概述
Qt5可以使用官方的Qt Installer Framework框架制作安装包

The Qt Installer Framework provides a set of tools and utilities to create installers once, and deploy them across all the supported desktop Qt platforms without rewriting the source code. The installers will have the native look and feel on the platform where they are run: Linux, Microsoft Windows, and macOS.

Supported Platforms

You can use the Qt Installer Framework to create installers for all platforms supported by desktop Qt.

The installers have been tested on the following platforms:

  • Microsoft Windows 7, and later
  • Ubuntu Linux 16.04, and later
  • macOS 10.12, and later

The Qt Installer Framework tools generate installers with a set of pages that guide the users during the installation, update, or uninstallation process. You provide the installable content and specify information about it, such as the name of the product and the installer and the text for the license agreement.

You can customize the installers by adding widgets to the predefined pages or by adding whole pages to provide users with additional options. You can create scripts to add operations to the installer.

Choosing Installer Type

You can provide end users with an offline or online installer, or both, depending on your use cases.

Both installers install a maintenance tool that can later be used to add, update, and remove components. Offline installers contain all the installable components and do not require network connections during the installation. Online installers only install the maintenance tool that then downloads and installs components from an online repository on a web server. Therefore, the size of an online installer binary is smaller and its download time is shorter than that of an offline installer binary. The total time spent downloading and running an online installer might also be shorter than dowloading and running an offline installer if the end users do not install all the available components.

End users can use the maintenance tool to install additional components from the server after the initial installation, as well as to receive automatic updates to content as soon as the updates are published on the server. However, this works for an offline installation only if you specify a repository address in the offline installer configuration or if end users specify the repository address themselves in the maintenance tool settings.

Create an offline installer to enable users to directly download the installation package on a media for installation on a computer later. You can also distribute the installation package on a CD-ROM or USB stick, for example.

Create an online installer to enable users to always install the latest versions of the content binaries.

下载 Qt Installer Framework 

官方下载:http://download.qt.io/official_releases/qt-installer-framework/

1、选择一个Qt Installer Framework版本,我选择目前最新的4.1.1版本

2、前面两项为压缩包,下载后解压就是一堆文件夹,没有可安装的exe,也没有找到 我们后面要打包的工具binarycreator.exe,所以就选了下面这个可以安装的exe版本,毕竟这个用的顺手。


安装Qt Installer Framework

1、点击运行exe可执行文件,进入Qt Installer Framework设置向导页面,点击“下一步”

2、选择安装路径,最好是新建一个空的文件夹, 用来存放安装的东西,选择完后点击“下一步”

3、进入许可协议页面,选择“我接受这些许可”,要用别人的软件,就必须习惯这个,尊重版权,没得办法,然后点击“下一步”

4、进入到安装页面,直接点击“安装”就好了

程序打包发布

1、先要在release模式下编译运行程序,生成release版本,也就是发布版本。在release文件下找到可执行文件exe,默认一般路径:"E:\Qt_Project\build-login-Desktop_Qt_5_11_1_MinGW_32bit-Release\release\music1.exe",如果把修改了项目的默认构建路径为当前项目,那就去当前项目文件里找,例如:"E:\Qt_Project\music1\Release\release\music1.exe",然后新建一个文件夹,把exe复制出来放到空文件夹里。

2、然后使用Qt自带的打包工具windeployqt对应用程序进行打包,其实就是把一些Qt的库或者依赖项添加进行来,可以在没安装Qt的电脑上使用exe,如果使用了Qt以外的第三方库,也需要把第三方库的依赖项添加进去,从电脑左下角的开始菜单打开Qt的命令行界面Qt 5.11.0 for Desktop(MinGW...),输入命令如下:windeployqt D:\keymanager\HttpServerDemo.exe

3、以下是打包好的文件夹示例,打包好后,点击exe测试一下能否使用,看看是否缺少第三方库或者依赖项,如果点击exe能够正常运行程序,则说明打包成功。

创建安装包程序

官方文档:http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

Creating a Package Directory

Create a directory structure that reflects the design of the installer and allows the installer to be extended in the future. The directory must contain subdirectories called config and packages.

For more information about the package directory, see Package Directory.

1、首先需要创建一个包目录结构,该包目录结构必须包含名为config和packages的子目录。config包含了有关如何构建安装程序二进制文件和联机存储库的信息,packages包含有关可安装组件的信息,结构如下图所示。不过Qt Installer Framework安装目录下面有很多的示例,这里就拿startmenu来示范,复制一份出来。startmenu的一般路径D:\QtInstallerFrameworkInstall\examples\startmenu。

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

Creating a Configuration File

In the config directory, create a file called config.xml with the following contents:

<?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>

The configuration file specifies the following information that is displayed on the introduction page:

  • The <Title> element specifies the installer name displayed on the title bar (1).
  • The <Name> element specifies the application name that is added to the page name and introduction text (2).

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

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>可乐音乐播放器</Name>
    <Version>1.0.0</Version>
    <Title>音乐播放器安装向导</Title>
    <Publisher>Qt-Project</Publisher>
    <!-- Directory name is used in component.xml -->
    <StartMenuDir>可乐音乐播放器</StartMenuDir>
    <TargetDir>@HomeDir@/可乐音乐播放器</TargetDir>
</Installer>

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

Creating a Package Information File

In this easy scenario, the installer handles only one component that is called com.vendor.product. To provide the installer with information about the component, create a file called package.xml with the following contents and place it in the meta directory:

<?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>

The elements in the example file are described in more detail below.

For more information about the package information file, see Package Information File Syntax.

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

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>README.txt</DisplayName>
    <Description>A README.txt, accessible through a start menu entry.</Description>
    <Version>1.0.0-1</Version>
    <ReleaseDate>2019-02-19</ReleaseDate>
    <Default>true</Default>
    <Script>installscript.qs</Script>

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

4、在packages目录下,有一个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@/Music.exe", "@StartMenuDir@/Music.lnk",
            "workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
            "iconId=2", "description=Open README file");
    }
}

installscript.qs 官方文档链接:

Controller Scripting | Qt Installer Framework Manual

http://doc.qt.io/qtinstallerframework/scripting.html

5、添加环境变量,将Qt Installer Framework安装文件下的bin路径添加到环境变量,重启电脑,不会添加自行百度

6、生成安装包程序,打开Qt的命令行界面Qt 5.11.0 for Desktop(MinGW...),输入以下命令,进入要生成的文件夹目录下,然后使用生成工具进行生成安装包应用

# 输入以下命令进入startmenu目录
 
D:\Qt5.11\install\5.11.0\mingw53_32>C:
C:\Windows\System32>cd C:\Users\欧阳磊\Desktop\startmenu

# 输入以下命令生成安装包程序
 
C:\Users\欧阳磊\Desktop\startmenu>binarycreator.exe -c config/config.xml -p packages install.exe -v

binarycreator.exe 的用法

Usage: binarycreator.exe [options] target

Options:
  -t|--template file        Use file as installer template binary
                            If this parameter is not given, the template used
                            defaults to installerbase.
  -p|--packages dir         The directory containing the available packages.
                            This entry can be given multiple times.
  --repository dir          The directory containing the available repository.
                            This entry can be given multiple times.
  -e|--exclude p1,...,pn    Exclude the given packages.
  -i|--include p1,...,pn    Include the given packages and their dependencies
                            from the repository.
  --ignore-translations     Do not use any translation
  --ignore-invalid-packages Ignore all invalid packages instead of aborting.
  --ignore-invalid-repositories Ignore all invalid repositories instead of aborting.
  -c|--config file          The file containing the installer configuration
  -n|--online-only          Do not add any package into the installer
                             (for online only installers)
  -f|--offline-only         Forces the installer to act as an offline installer,
                             i.e. never access online repositories
  -r|--resources r1,.,rn    include the given resource files into the binary
  -v|--verbose              Verbose output
  -rcc|--compile-resource   Compiles the default resource and outputs the result into
                            'update.rcc' in the current path.

Packages are to be found in the current working directory and get listed as their names

Example (offline installer):
  binarycreator.exe --offline-only -c installer-config\config.xml -p packages-directory -t installerbase.exe SDKInstaller.exe
Creates an offline installer for the SDK, containing all dependencies.

Example (online installer):
  binarycreator.exe -c installer-config\config.xml -p packages-directory -e org.qt-project.sdk.qt,org.qt-project.qtcreator -t installerbase.exe SDKInstaller.exe

Creates an installer for the SDK without qt and qt creator.

Example update.rcc:
  binarycreator.exe -c installer-config\config.xml -p packages-directory -rcc

# 以下是生成安装包的过程
 
[0] Parsed arguments, ok.
[4]
Collecting information about available packages...
[8] Found subdirectory "org.qtproject.ifw.example"
[10] - it provides the package "org.qtproject.ifw.example"  -  "1.0.0-1"
[14] Copying component data for "org.qtproject.ifw.example"
[19] Compressing data directory "audio"
[38] Compressing data directory "bearer"
[63] Compressing data directory "iconengines"
[76] Compressing data directory "imageformats"
[329] Compressing data directory "mediaservice"
[435] Compressing data directory "platforms"
[768] Compressing data directory "playlistformats"
[823] Compressing data directory "sqldrivers"
[1068] Compressing data directory "styles"
[1112] Compressing data directory "translations"
[1684] Compressing files found in data directory: ("D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/D3Dcompiler_47.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libEGL.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libgcc_s_dw2-1.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libGLESV2.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libstdc++-6.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libwinpthread-1.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/music.db", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/music1.exe", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/opengl32sw.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Core.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Gui.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Multimedia.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Network.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Sql.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Svg.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Widgets.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/README.txt")
[12233] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z.sha1"
[12241] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z"
[12249] Generated sha1 hash: "ffeca0a73eadfe439bf181bc5aae46cd28f65e80"
[12253] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z.sha1"
[12259] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z"
[12266] Generated sha1 hash: "575ba7628c5da58d117384d2efdf495ce507a318"
[12270] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z.sha1"
[12276] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z"
[12284] Generated sha1 hash: "122694b718c342748771d100990eae8604a9d8e1"
[12289] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z.sha1"
[12294] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z"
[12303] Generated sha1 hash: "1ac50a65a290dd9e6d6f878dab2b25af158808bb"
[12309] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z.sha1"
[12315] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z"
[12323] Generated sha1 hash: "463cbb639b0283b86231ed36b88d86fa9579c6d2"
[12327] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z.sha1"
[12333] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z"
[12342] Generated sha1 hash: "4f7e6857e3515e03f3c341116c58fed438052e0e"
[12345] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z.sha1"
[12352] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z"
[12405] Generated sha1 hash: "5f4b28f321c56360ada544cf8d4eb287ce09d2d0"
[12409] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z.sha1"
[12417] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z"
[12426] Generated sha1 hash: "b220571bbf43d05d0da17d93aa26aaa94415116b"
[12430] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z.sha1"
[12437] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z"
[12445] Generated sha1 hash: "007e72259db84c7c455432ad8793b7db2ee978e0"
[12449] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z.sha1"
[12456] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z"
[12465] Generated sha1 hash: "90b93b8a85db276cad171bf5d15b581274852964"
[12470] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z.sha1"
[12477] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z"
[12528] Generated sha1 hash: "53cefc29b3d6b2eec6eb87a5b6d3d1f0a06eea3d"
[12533] Copy meta data for package "org.qtproject.ifw.example" using "packages/org.qtproject.ifw.example/meta/package.xml"
[12540] calculate size of directory "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/data"
[12573] Copying associated "script" file "packages/org.qtproject.ifw.example/meta/installscript.qs"
[12581] done.
 
[12583] Begin to copy configuration file and data.
[12585] Copying associated "configuration" file "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/config/config.xml"
[12595] done.
 
[12596] Read dom element: <Name>Start Menu Shortcut Example</Name>.
[12599] Read dom element: <Version>1.0.0</Version>.
[12603] Read dom element: <Title>Start Menu Shortcut Example</Title>.
[12606] Read dom element: <Publisher>Qt-Project</Publisher>.
[12609] Read dom element: <StartMenuDir>Qt Installer Framework Examples</StartMenuDir>.
[12613] Read dom element: <TargetDir>@HomeDir@/IfwExamples/startmenu</TargetDir>.
[12617] done.
 
[12728] Creating the binary
[12826] Creating resource archive for "org.qtproject.ifw.example"
[12831] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z" ("32.81 KiB")
[12837] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z.sha1" ("40.00 bytes")
[12843] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z" ("23.60 KiB")
[12849] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z.sha1" ("40.00 bytes")
[12857] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z" ("15.45 KiB")
[12863] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z.sha1" ("40.00 bytes")
[12870] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z" ("452.46 KiB")
[12877] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z.sha1" ("40.00 bytes")
[12884] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z" ("138.68 KiB")
[12891] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z.sha1" ("40.00 bytes")
[12897] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z" ("651.78 KiB")
[12905] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z.sha1" ("40.00 bytes")
[12911] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z" ("10.77 KiB")
[12918] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z.sha1" ("40.00 bytes")
[12926] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z" ("493.75 KiB")
[12932] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z.sha1" ("40.00 bytes")
[12940] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z" ("65.42 KiB")
[12946] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z.sha1" ("40.00 bytes")
[12954] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z" ("454.49 KiB")
[12960] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z.sha1" ("40.00 bytes")
[12968] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z" ("16.83 MiB")
[12978] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z.sha1" ("40.00 bytes")
[13038] Cleaning up...
 
安装包程序
生成安装包程序之后,你就可以点击运行这个程序进行安装了,以下为安装示例

安装完以后,去安装目录下找到Music.exe点击运行,如果运行成功,则说明安装包是没问题的。

————————————————
版权声明:本文为CSDN博主「欧阳磊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mars_xiaolei/article/details/83825447

*《Qt5+安装包制作(Qt Installer Framework)》二相关推荐

  1. 《视觉SLAM进阶:从零开始手写VIO》(二)

    <视觉SLAM进阶:从零开始手写VIO>第二讲 1 安装im_utils 这个工具之前就使用过了,还写了博客,没想到在这里用上了,博客地址:https://blog.csdn.net/le ...

  2. 《视觉SLAM进阶:从零开始手写VIO》第二讲作业-IMU仿真、MU imu_utils标定

    <视觉SLAM进阶:从零开始手写VIO>第二讲作业-IMU仿真.MU imu_utils标定 作业题目: 1 仿真代码解析 仿真代码地址:https://github.com/HeYiji ...

  3. 《视觉SLAM进阶:从零开始手写VIO》第三讲 基于优化的IMU预积分与视觉信息融合 作业

    <视觉SLAM进阶:从零开始手写VIO>第三讲 基于优化的IMU预积分与视觉信息融合 作业 文章目录 <视觉SLAM进阶:从零开始手写VIO>第三讲 基于优化的IMU预积分与视 ...

  4. 《视觉SLAM进阶:从零开始手写VIO》第一讲作业

    目录 1 视觉与IMU融合之后有何优势? 2 有哪些常见的视觉+IMU融合方案?有没有工业界应用的例子? 3 在学术界,VIO研究有哪些新进展?有没有将学习方法应用到VIO的例子? 4 四元数和李代数 ...

  5. 深蓝学院《从零开始手写VIO》作业一

    深蓝学院<从零开始手写VIO>作业一 深蓝学院<从零开始手写VIO>作业一 1. VIO文献阅读 1.1 视觉与IMU进行融合之后有何优势? 1.2 有哪些常见的视觉+IMU融 ...

  6. 深蓝学院《从零开始手写VIO》作业五

    深蓝学院<从零开始手写VIO>作业五 1. 完成Bundle Adjustment求解器 2. 完成测试函数 3. 论文总结 1. 完成Bundle Adjustment求解器 完成单目 ...

  7. 深蓝学院《从零开始手写VIO》作业四

    深蓝学院<从零开始手写VIO>作业四 深蓝学院<从零开始手写VIO>作业四 1. 信息矩阵分析 2. Bundle Adjustment信息矩阵的计算 深蓝学院<从零开始 ...

  8. 从零开始手写VIO 第二章 IMU传感器

    第二章 IMU传感器 课程代码: https://github.com/kahowang/Visual_Internal_Odometry/tree/main/%E7%AC%AC%E4%BA%8C%E ...

  9. 深蓝学院《从零开始手写VIO》作业七

    深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 将第二讲中的仿真数据(视觉特征,imu数据)接入V ...

  10. 深蓝学院《从零开始手写VIO》作业六

    深蓝学院<从零开始手写VIO>作业五 深蓝学院<从零开始手写VIO>作业六 1. 证明题 2. 代码题 深蓝学院<从零开始手写VIO>作业六 1. 证明题 证明Dy ...

最新文章

  1. 取出list中属性_你是否用过List<T>和List<?>?
  2. OpenFire源码学习之二十五:消息回执与离线消息(下)
  3. PowerShell2.0之维护网络(一)查看网络设置
  4. java注释的简单_Java简单注解
  5. java基础---Math工具类
  6. RabbitMQ(三) ——发布订阅
  7. ecos(redboot)移植剖析
  8. AMD and CMD are dead之KMD.js依赖可视化工具发布
  9. mysql privileges
  10. putty提示Network error:Software caused connection abort
  11. 前端知识天天学(2)
  12. VMware Workstation虚拟机安装
  13. Vim编辑器常用命令
  14. 怎么把手机字体改成繁体_如何把手机字体变成繁体 繁体字转换器
  15. 【面试个人成长】2021年过半,社招和校招的经验之谈
  16. 【论文学习】Multi-modal Knowledge Graphs for Recommender Systems
  17. 湿冷天扫除前挡玻璃视障 应该怎么选?
  18. 冯·诺依曼体系结构 -- 理解
  19. Echats关系图les-miserables的图表详细解析(和弦图)(二)
  20. WIN8应用商店闪退

热门文章

  1. 放大电路静态工作点的稳定概念详解
  2. 程序员在大学的自我管理
  3. 柯莱特CTO谈企业选择CRM的六大目标
  4. CSSCI中文数据库引文分析+主路径分析+共被引
  5. 教程:Win10移动User文件夹到其他位置(多图)
  6. 推荐系统模型论文阅读笔记
  7. 个人微信ipad二次开发
  8. 湖南计算机高考可填哪些志愿,湖南2021新高考填报志愿指南 可以填报几个志愿...
  9. 300元搭建远程下载+视频服务器 Debian nginx+aria2+各种视频服务(smb+nfs+dlna)
  10. HR警告:应届生求职简历中的实习经历千万别水