Qt for macOS - 从源代码构建
要求
构建 Qt 需要在系统中安装 macOS 平台 SDK 和相应的工具链。如Qt for macOS#Build Environment 中所述,您可以通过安装 Xcode 获得。
您应始终使用与 "支持的配置"中所列完全相同的 Xcode 和 SDK 版本,以确保 Qt 已在您要构建的配置中经过测试。
除了 Xcode 之外,您还需要确保您的路径中包含以下依赖项PATH
.
- CMake (>=3.22)
- 忍者
如果您想构建 Qt WebEngine或 Qt PDF,您将需要以下额外的依赖项:
- Python html5lib
- Bison, Flex
- Gperf
- Node.js 8 或更高版本(建议使用 12 版本)
QDoc 依赖项
QDoc使用 Clang 解析 C++ 代码。如果您希望手动构建 QDoc,请参阅为 QDoc 安装 Clang了解具体的构建要求。
构建步骤
以下说明介绍了如何从源码包中构建 Qt。您可以从下载页面下载 Qt 源代码。有关详细信息,请访问Qt 入门页面。
步骤 1:解压压缩包
如果尚未解压压缩包,请解压压缩包。例如,如果您有qt-everywhere-src-6.9.0.tar.xz
软件包,请在命令行提示符下键入以下命令:
cd /tmp tar xf ~/Downloads/qt-everywhere-src-6.9.0.tar.xz
这将创建/tmp/qt-everywhere-src-6.9.0
目录,其中包含压缩包中的文件。
步骤 2:构建 Qt 库
要为您的机器类型配置 Qt 库,请创建一个构建目录并切换到该目录。在该目录下运行./configure
脚本。
mkdir -p ~/dev/qt-build cd ~/dev/qt-build /tmp/qt-everywhere-src-6.9.0/configure
注意: 如果有ninja
可执行文件,configure 总是使用Ninja生成器和构建工具。Ninja 跨平台、功能丰富、性能卓越,建议在所有平台上使用。使用其他生成器可能可行,但未获官方支持。
默认情况下,Qt XML 配置为安装在/usr/local/6.9.0
目录中,但可通过使用-prefix
选项进行更改。
默认情况下,Qt 是作为框架构建的,但你也可以通过指定-no-framework
选项,将其作为一组动态库 (dylibs) 构建。
正如Qt for macOS#Architectures 中所述,Qt 默认会根据开发机器的架构构建。要配置同时支持英特尔和苹果硅 Mac 的 Qt 通用编译,请添加以下参数:
./configure -- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
注意: 通用构建始终需要包含开发机器的架构,因为该过程依赖于在你的机器上构建和运行的工具,而这些工具是整体构建的一部分。
请注意首先指定英特尔架构("x86_64"),否则 Qt 可能无法启用所有 x86 功能。
Qt 也可以配置为使用调试符号构建。调试技术文档中详细介绍了这一过程。
配置选项页面包含有关配置选项的更多信息。
要创建库并编译所有示例和工具,请键入
cmake --build . --parallel
如果-prefix
位于编译目录之外,则需要在适当位置安装库、示例和工具。为此,请键入
cmake --install .
该命令要求你拥有计算机的管理员权限。
步骤 3:设置环境变量
为了使用 Qt,需要扩展一些环境变量。
PATH - to locate qmake, moc and other Qt tools
具体步骤如下
在.profile
(如果你的 shell 是 bash)或.zshenv
(zsh)中添加以下几行:
PATH=/usr/local/Qt-%VERSION%/bin:$PATH export PATH
在.login
(如果你的 shell 是 csh 或 tcsh)中,添加下面一行:
setenv PATH /usr/local/Qt-%VERSION%/bin:$PATH
如果使用不同的 shell,请相应修改环境变量。
Qt 现已安装。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.