入门
您可以使用 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
压缩和归档库的部分重新分发,这要求您链接到以下库;liblzma
、zlib
、libbzip2
,以及在 macOS 上,libiconv
。
要启用使用 libarchive
,将 libarchive
配置功能添加到由 CONFIG
变量指定的值的列表中。使用此配置创建的安装程序支持创建和提取 7zip、zip 和 tar 归档文件,压缩方法包括 gzip
、bzip2 和 xz
。
qmake CONFIG+=libarchive
您可以使用 IFW_ZLIB_LIBRARY
、IFW_BZIP2_LIBRARY
、IFW_LZMA_LIBRARY
和 IFW_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 安装程序框架
- 从 http://code.qt.io/cgit/installer-framework/installer-framework.git/ 克隆 Qt 安装程序框架源代码以获取工具的源代码。
- 通过从静态 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 的商标。所有其他商标均为其各自所有者的财产。