入门

您可以使用 Qt 安装器框架创建各种应用程序的安装程序,包括(但不仅限于)使用 Qt 构建的应用程序。

支持的平台

您可以使用 Qt 安装器框架创建所有支持的平台安装程序,包括桌面 Qt

如果您使用 Linux,还需要安装平台插件依赖项

从源代码构建

以下步骤描述了如何自己构建 Qt 安装器框架。如果您已下载了框架的预构建版本,则可以跳过此步骤。

支持的编译器

您可以使用 Microsoft Visual Studio 2019 及更高版本、GCC 9 及更高版本和 Clang 13.0.0 及更高版本编译 Qt 安装器框架。目前,针对 Windows 的测试组合是 Qt 6.6.0 与 MSVC 2019(Windows 10)。

配置 Qt

如果您使用静态构建的 Qt 来构建 Qt 安装器框架,则不需要交付 Qt 库,这使得您可以将安装程序作为单个文件分发。有关针对 OpenSSL 库进行静态链接的更多信息,请参阅SSL 导入和导出限制

支持的 Qt 版本是 6.6.0。

获取 Qt 源代码

\l{https://wiki.qt.io/Building_Qt_6_from_Git}{Get Qt sources from git}.
Call init-repository with --module-subset=qt5compat, qtbase, qtdeclarative, qttools, qttranslations

为 Windows 配置 Qt

针对 Windows 使用以下配置选项

configure -prefix %CD%\qtbase -release -static -static-runtime -accessibility -no-icu -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests

为 Linux 配置 Qt

针对 Linux 使用以下配置选项

configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-pcre -no-glib -no-cups -no-sql-sqlite -no-feature-gssapi -no-qml-debug -no-opengl -no-egl -no-xinput2 -no-sm -no-icu -nomake examples -nomake tests -no-libudev -bundled-xcb-xinput -qt-harfbuzz -qt-doubleconversion

为 macOS 配置 Qt

针对 macOS 使用以下配置选项

configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -no-cups -no-sql-sqlite -no-qml-debug -nomake examples -nomake tests -no-freetype

构建 Qt

cmake --build . --parallel
cmake --install .

第三方依赖项

Qt 安装器框架源代码包含对 libarchive 压缩和归档库的部分重新分发,这要求您链接到以下库;liblzmazliblibbzip2,以及在 macOS 上,libiconv

要启用使用 libarchive,将 libarchive 配置功能添加到由 CONFIG 变量指定的值的列表中。使用此配置创建的安装程序支持创建和提取 7zip、zip 和 tar 归档文件,压缩方法包括 gzip、bzip2 和 xz

qmake CONFIG+=libarchive

您可以使用 IFW_ZLIB_LIBRARYIFW_BZIP2_LIBRARYIFW_LZMA_LIBRARYIFW_ICONV_LIBRARY 变量指定确切的库文件。

如果您将 -qt-zlib 配置添加到构建 Qt 安装器框架使用的 Qt 版本中,并且 IFW_ZLIB_LIBRARY 变量为空,则 libarchive 将尝试使用编译到 QtCore 模块中的 zlib 库,从而无需使用外部库。

如果您未启用 libarchive 支持,内置的 LZMA SDK 库将作为后备选项,不会安装额外的依赖项,但创建的安装程序仅支持 7zip 格式。

注意:使用 LZMA SDK 构建 IFW 已弃用,并且可能不在未来的版本中可用。

为 Windows 安装依赖项

您可以从以下位置下载依赖项的源存档:

当使用 MSVC 构建第三方库时,请确保使用您用于构建 Qt 的相同版本,并且用于选择运行时库的编译器选项与 Qt 的配置选项相匹配(调试/发布,静态/动态运行时)。

为 Linux 安装依赖项

所需的第三方压缩库很可能来自您的发行版的软件包管理器存储库。

例如,在 Ubuntu 18.04 上,您可以通过以下命令安装包含库头文件的开发包

sudo apt install zlib1g-dev liblzma-dev libbz2-dev

为 macOS 安装依赖项

安装缺失库的最简单方法是使用第三方包管理器解决方案,例如 Homebrew 或 MacPorts。在 macOS 10.15 上,您可能还需要安装 liblzma 库。

在 Homebrew 上,这将是

brew install xz

故障排除

对于与 libarchive 相关的编译错误,您可能需要编辑配置头文件中的定义,该文件与您的平台相关。您可以在安装程序框架源代码中的 src/libs/3rdparty/libarchive/config/ 目录中找到此文件。

设置 Qt 安装程序框架

  1. http://code.qt.io/cgit/installer-framework/installer-framework.git/ 克隆 Qt 安装程序框架源代码以获取工具的源代码。
  2. 通过从静态 Qt 运行 "qmake" 构建 tools,然后运行 "make" 或 "nmake"。

注意:要向 Qt 安装程序框架贡献补丁,请遵循标准的 Qt 流程和指南。有关更多信息,请参阅向 Qt 贡献

©2021 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt Company、Qt 及其各自的标志是芬兰和/或全世界 The Qt Company Ltd 的商标。所有其他商标均为其各自所有者的财产。