本文档是泰山派 3M(RK3576)Buildroot SDK 中 Qt 5.15.11 所有可配置模块的完整参考手册。文档内容基于 SDK 源码 package/qt5/ 目录下的实际 Config.in 文件整理而成,涵盖每个模块的依赖关系、互斥选项、自动选择行为以及在 menuconfig 中的精确导航路径。
配置入口
Qt5 相关配置文件位于 SDK 的 package/qt5/ 目录下。进入 menuconfig 的方式:
# 进入 SDK 根目录
cd /home/lckfb/TaishanPi-3-Linux
# 交互式选择(推荐)
./build.sh lunch
# 选择 tspi_3m_rk3576_buildroot_defconfig
# 直接打开 menuconfig
./build.sh bconfig2
3
4
5
6
7
8
9
bconfig命令会直接打开 Buildroot 的 menuconfig 配置界面。保存后会自动更新默认配置文件(buildroot/configs/rockchip_rk3576_defconfig)。
然后依次进入:
Target packages → Graphic libraries and applications (graphic/text) → Qt5顶层开关 BR2_PACKAGE_QT5(对应菜单项 Qt5)启用后,会自动选择 BR2_PACKAGE_QT5BASE,即 qt5base 核心模块始终随 Qt5 一同编译。
顶层依赖条件
启用 Qt5 需要工具链满足以下条件,否则该选项在 menuconfig 中不可见:
| 依赖项 | 说明 |
|---|---|
BR2_INSTALL_LIBSTDCPP | 工具链需启用 C++ 支持 |
BR2_USE_WCHAR | 工具链需启用宽字符(wchar)支持 |
BR2_TOOLCHAIN_HAS_THREADS_NPTL | 工具链需支持 NPTL 线程 |
BR2_TOOLCHAIN_GCC_AT_LEAST_5 | GCC 版本 ≥ 5 |
!BR2_STATIC_LIBS | 不能使用纯静态库工具链 |
!BR2_ARM_CPU_ARMV4 | 不支持 ARMv4 架构 |
阅读说明
本文档使用以下标记来描述配置项的行为:
| 标记 | 含义 |
|---|---|
[auto] | 该选项为 def_bool y,启用父级后自动开启,用户无需手动勾选 |
[manual] | 该选项为普通 bool,需要用户手动启用 |
[choice] | 该组选项为互斥选择(choice 块),同一时间只能选中其中一个 |
[selects X] | 启用该选项会自动选中 X |
[depends X] | 该选项仅在 X 满足时可见 |
[comment] | menuconfig 中显示的灰色提示文字,说明某选项不可见的原因 |
典型应用场景配置方案
以下列出四种常见使用场景的推荐配置,帮助快速定位需要启用的模块。
场景一:最小化嵌入式 HMI(无 GPU)
适用于仅需 LinuxFB 帧缓冲显示、不依赖 GPU 加速的简单 HMI 界面。
| 模块 | 配置 |
|---|---|
| qt5base GUI | 启用 |
| qt5base Widgets | 启用 |
| LinuxFB 后端 | 启用(若无其他后端则自动启用) |
| OpenGL | 不启用 |
| qt5quickcontrols / qt5quickcontrols2 | 按需启用 |
| qt5declarative (QML) | 如需 QML 界面则启用 |
场景二:GPU 加速触屏设备(EGLFS)
适用于带 GPU 的 RK3576 平台,使用 EGLFS 后端进行全屏 OpenGL ES 渲染。
| 模块 | 配置 |
|---|---|
| qt5base GUI | 启用 |
| qt5base Widgets | 启用 |
| EGLFS 后端 | 启用(自动选中 OpenGL) |
| OpenGL ES2 | 启用(在 OpenGL choice 中选择) |
| qt5declarative (QML) | 启用 |
| qt5graphicaleffects | 推荐启用 |
| qt5quickcontrols2 | 推荐启用 |
场景三:带数据库的工业应用
适用于需要本地数据库存储的工控、数据采集类应用。
| 模块 | 配置 |
|---|---|
| qt5base GUI + Widgets | 启用 |
| SQLite(Qt 内置或系统) | 在 SQLite choice 中选择 Qt 内置版或系统版 |
| qt5serialport | 如需串口通信则启用 |
| qt5charts | 如需图表展示则启用 |
| NETWORK | 自动启用 |
场景四:多媒体播放器
适用于需要音视频播放能力的多媒体终端。
| 模块 | 配置 |
|---|---|
| qt5base GUI + Widgets | 启用 |
| OpenGL ES2 + EGLFS | 启用 |
| qt5multimedia | 启用 |
| qt5declarative (QML) | 启用 |
| JPEG / PNG 图片支持 | 启用 |
| D-Bus | 推荐启用 |
核心模块(qt5base)
menuconfig 路径:
Target packages → Graphic libraries and applications (graphic/text) → Qt5 → qt5base
qt5base 是 Qt5 的核心基础模块,包含 QtCore、QtGui、QtWidgets、QtNetwork、QtSql、QtXml 等基础库。当顶层 BR2_PACKAGE_QT5 启用时,qt5base 会被自动选中(select BR2_PACKAGE_QT5BASE)。
qt5base 内部的配置项按功能分为以下几个区域,下面逐一说明。
基础配置
menuconfig 路径:
Qt5 → qt5base
这些是 qt5base 最顶层的配置项:
| 配置项 | Kconfig 符号 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| Custom configuration options | BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS | string | 空 | 传递给 qt5base configure 的自定义参数,高级用户使用 |
| Configuration file | BR2_PACKAGE_QT5BASE_CONFIG_FILE | string | 空 | 指定自定义的 qt configure 配置文件路径 |
| Install examples | BR2_PACKAGE_QT5BASE_EXAMPLES | bool [manual] | 否 | 安装 Qt 示例程序,启用后会 [selects NETWORK, XML] |
| network module | BR2_PACKAGE_QT5BASE_NETWORK | [auto] | 是 | QtNetwork 模块,def_bool y 始终启用 |
| concurrent module | BR2_PACKAGE_QT5BASE_CONCURRENT | bool [manual] | 否 | QtConcurrent 并发模块,需手动启用 |
| sql module | BR2_PACKAGE_QT5BASE_SQL | [auto] | 是 | QtSql 模块,def_bool y 始终启用 |
| test module | BR2_PACKAGE_QT5BASE_TEST | [auto] | 是 | QtTest 模块,def_bool y 始终启用 |
| xml module | BR2_PACKAGE_QT5BASE_XML | [auto] | 是 | QtXml 模块,def_bool y 始终启用 |
TIP
NETWORK、SQL、TEST、XML 四个模块为 def_bool y,即只要 qt5base 被编译就会自动包含,无需也无法手动关闭。
数据库插件(SQL 子选项)
menuconfig 路径:
Qt5 → qt5base → sql module
QtSql 模块自动启用后,可以进一步配置具体的数据库驱动插件:
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| MySQL Plugin | BR2_PACKAGE_QT5BASE_MYSQL | bool [manual] | [depends BR2_USE_MMU] | MySQL/MariaDB 数据库驱动 |
| PostgreSQL Plugin | BR2_PACKAGE_QT5BASE_PSQL | bool [manual] | [depends BR2_USE_MMU, BR2_USE_WCHAR, !BR2_STATIC_LIBS, !BR2_OPTIMIZE_FAST] | PostgreSQL 数据库驱动 |
当 PostgreSQL 插件的依赖条件不满足时,menuconfig 中会显示以下灰色提示:
[comment]"PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
[comment]"PostgreSQL plugin can't be built with Optimize for fast"
SQLite 驱动选择 [choice]
menuconfig 路径:
Qt5 → qt5base → sql module → SQLite support
SQLite 支持为三选一互斥选项(choice 块),同一时间只能选择其中一种:
| 选项 | Kconfig 符号 | 默认 | 说明 |
|---|---|---|---|
| No sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_NONE | 是(默认) | 不编译 SQLite 驱动 |
| Qt bundled sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_QT | 否 | 使用 Qt 自带的 SQLite 库 |
| System sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM | 否 | 使用系统级 SQLite 库(需已安装 sqlite 包) |
WARNING
三个选项互斥,选择其中一个会自动取消其他两个。默认不启用 SQLite 驱动,如果应用需要本地数据库存储,建议选择 "Qt bundled sqlite support" 以减少外部依赖,或选择 "System sqlite support" 与系统其他组件共享同一个 SQLite 版本。
GUI 与显示后端
menuconfig 路径:
Qt5 → qt5base → gui module
| 配置项 | Kconfig 符号 | 类型 | 说明 |
|---|---|---|---|
| gui module | BR2_PACKAGE_QT5BASE_GUI | bool [manual] | QtGui 模块总开关,启用后 [selects BR2_PACKAGE_FREETYPE] 自动引入 FreeType 字体库 |
| widgets module | BR2_PACKAGE_QT5BASE_WIDGETS | bool [manual] | QtWidgets 模块,提供传统桌面风格控件 |
INFO
启用 gui module 后,如果没有手动选择任何显示后端(LinuxFB / DirectFB / XCB / EGLFS),系统会自动启用 LinuxFB 作为默认后端,确保至少有一个可用的显示输出。
显示后端选项
以下后端选项均位于 gui module 下,可以同时启用多个:
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| LinuxFB backend | BR2_PACKAGE_QT5BASE_LINUXFB | bool [manual] | 无 | Linux 帧缓冲后端,最基础的显示方式,无需 GPU |
| DirectFB backend | BR2_PACKAGE_QT5BASE_DIRECTFB | bool [manual] | [depends BR2_PACKAGE_DIRECTFB] | DirectFB 后端 |
| XCB (X11) backend | BR2_PACKAGE_QT5BASE_XCB | bool [manual] | [depends BR2_PACKAGE_XORG7] | X.org XCB 后端,用于 X11 窗口系统 |
| EGLFS backend | BR2_PACKAGE_QT5BASE_EGLFS | bool [manual] | [depends BR2_PACKAGE_HAS_LIBEGL, BR2_PACKAGE_QT5_GL_AVAILABLE] | EGL 全屏后端,[selects OPENGL] |
当各后端的依赖条件不满足时,menuconfig 中会显示以下灰色提示:
[comment]"directfb backend available if directfb is enabled"
[comment]"X.org XCB backend available if X.org is enabled"
[comment]"eglfs backend available if OpenGL and EGL are enabled"
Vulkan 支持
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| Vulkan support | BR2_PACKAGE_QT5BASE_VULKAN | bool [manual] | [depends BR2_INSTALL_LIBSTDCPP, !BR2_STATIC_LIBS, BR2_TOOLCHAIN_HAS_THREADS] | 启用后 [selects vulkan-headers, vulkan-loader] |
默认 QPA 平台
| 配置项 | Kconfig 符号 | 类型 | 说明 |
|---|---|---|---|
| Default QPA platform | BR2_PACKAGE_QT5BASE_DEFAULT_QPA | string | 设置默认的 QPA 平台插件名称(如 eglfs、linuxfb、xcb),留空则使用编译时默认值 |
PrintSupport 模块
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| printsupport module | BR2_PACKAGE_QT5BASE_PRINTSUPPORT | [auto] | [depends BR2_PACKAGE_QT5BASE_WIDGETS] | 打印支持模块,当 Widgets 启用时自动启用(def_bool y) |
OpenGL 与图形加速
menuconfig 路径:
Qt5 → qt5base → gui module → OpenGL support
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| OpenGL support | BR2_PACKAGE_QT5BASE_OPENGL | bool [manual] | [depends BR2_PACKAGE_QT5_GL_AVAILABLE] | OpenGL 支持总开关 |
当依赖条件不满足时,menuconfig 中会显示:
[comment]"OpenGL support needs an OpenGL-capable backend"
OpenGL API 选择 [choice]
menuconfig 路径:
Qt5 → qt5base → gui module → OpenGL support → OpenGL API
启用 OpenGL support 后,需要在以下两个 API 中二选一(choice 块):
| 选项 | Kconfig 符号 | 依赖条件 | 说明 |
|---|---|---|---|
| Desktop OpenGL | BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP | [depends BR2_PACKAGE_HAS_LIBGL] | 桌面级 OpenGL,需要完整的 libGL 支持 |
| OpenGL ES 2.0+ | BR2_PACKAGE_QT5BASE_OPENGL_ES2 | [depends BR2_PACKAGE_HAS_LIBGLES] | 嵌入式 OpenGL ES 2.0,适用于 RK3576 等嵌入式 GPU |
TIP
对于泰山派 RK3576 平台,通常选择 OpenGL ES 2.0+,因为 Mali GPU 提供的是 OpenGL ES 实现而非桌面级 OpenGL。
OpenGL 模块库
| 配置项 | Kconfig 符号 | 类型 | 说明 |
|---|---|---|---|
| opengl module | BR2_PACKAGE_QT5BASE_OPENGL_LIB | bool [manual] | QtOpenGL 兼容模块库,启用后 [selects WIDGETS] |
字体与图片
menuconfig 路径:
Qt5 → qt5base → gui module
以下选项均位于 gui module 内部,控制字体渲染和图片格式支持:
| 配置项 | Kconfig 符号 | 类型 | 说明 |
|---|---|---|---|
| Fontconfig support | BR2_PACKAGE_QT5BASE_FONTCONFIG | bool [manual] | 启用 Fontconfig 字体配置系统,可自动发现系统字体 |
| HarfBuzz support | BR2_PACKAGE_QT5BASE_HARFBUZZ | bool [manual] | 启用 HarfBuzz 文本整形引擎,改善复杂文字排版 |
| GIF support | BR2_PACKAGE_QT5BASE_GIF | bool [manual] | GIF 图片格式支持 |
| JPEG support | BR2_PACKAGE_QT5BASE_JPEG | bool [manual] | JPEG 图片格式支持,启用后 [selects BR2_PACKAGE_JPEG] 自动引入 JPEG 库 |
| PNG support | BR2_PACKAGE_QT5BASE_PNG | bool [manual] | PNG 图片格式支持,启用后 [selects BR2_PACKAGE_LIBPNG] 自动引入 libpng 库 |
TIP
对于大多数嵌入式 GUI 应用,建议至少启用 PNG support。如果界面中包含照片或需要加载 JPEG 资源,还应启用 JPEG support。Fontconfig 在需要动态加载多种字体时非常有用,而 HarfBuzz 对于需要显示阿拉伯语、泰语等复杂文字的国际化应用是必要的。
其他 qt5base 选项
menuconfig 路径:
Qt5 → qt5base
以下选项位于 qt5base 顶层,不属于 GUI 子菜单:
| 配置项 | Kconfig 符号 | 类型 | 依赖条件 | 说明 |
|---|---|---|---|---|
| syslog support | BR2_PACKAGE_QT5BASE_SYSLOG | bool [manual] | 无 | 将 Qt 调试输出重定向到 syslog |
| D-Bus support | BR2_PACKAGE_QT5BASE_DBUS | bool [manual] | [depends BR2_TOOLCHAIN_HAS_THREADS, BR2_USE_MMU] | 启用 D-Bus 进程间通信支持 |
| ICU support | BR2_PACKAGE_QT5BASE_ICU | bool [manual] | [depends BR2_TOOLCHAIN_GCC_AT_LEAST_4_9, BR2_HOST_GCC_AT_LEAST_4_9] | 启用 ICU 国际化组件库,提供完整的 Unicode 和本地化支持 |
| tslib support | BR2_PACKAGE_QT5BASE_TSLIB | bool [manual] | 无 | 启用 tslib 触摸屏校准库支持 |
当 ICU 的依赖条件不满足时,menuconfig 中会显示:
[comment]"icu support needs a toolchain w/ gcc >= 4.9, host gcc >= 4.9"
D-Bus 说明
D-Bus 在许多 Linux 系统服务中广泛使用。如果你的应用需要与系统服务(如 NetworkManager、BlueZ 蓝牙等)交互,或者需要使用 Qt 的通知系统,建议启用此选项。
tslib 说明
tslib 用于电阻式触摸屏的校准和输入处理。如果你的设备使用电容式触摸屏并通过 evdev 驱动,通常不需要启用此选项。对于电阻式触摸屏,启用 tslib 可以提供触摸校准功能。
4. QML / Quick 模块
QML/Quick 是 Qt 声明式 UI 框架的核心。所有 QML 相关模块均依赖 JSCORE_AVAILABLE,即工具链架构必须为 arm、aarch64、i386、x86_64、mipsel 或 arc 之一,且不能是 ARMv4。RK3576 为 aarch64 架构,天然满足此条件。
4.1 qt5declarative(QML 引擎)
menuconfig 路径:Qt5 → qt5declarative
QML 引擎是整个声明式 UI 体系的基础,提供 QML 语言解析、JavaScript 引擎和基础类型系统。
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5DECLARATIVE |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_GUI |
子选项:quick module
menuconfig 路径:Qt5 → qt5declarative → quick module
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects(条件) | BR2_PACKAGE_QT5BASE_OPENGL_LIB(当 BR2_PACKAGE_QT5BASE_OPENGL 已启用时) |
说明: quick module 是 Qt Quick 场景图渲染的核心。启用后会自动拉取 GUI 支持;若系统已启用 OpenGL 后端,还会自动选中 OpenGL 库。绝大多数 QML 应用都需要同时启用 qt5declarative 和 quick module。
4.2 qt5quickcontrols(Quick Controls 1)
menuconfig 路径:Qt5 → qt5quickcontrols
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5QUICKCONTROLS |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
4.3 qt5quickcontrols2(Quick Controls 2)
menuconfig 路径:Qt5 → qt5quickcontrols2
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5QUICKCONTROLS2 |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
说明: Quick Controls 2 是 Quick Controls 1 的替代品,提供更轻量、更高性能的控件集。新项目应优先使用 Quick Controls 2。
4.4 qt5quicktimeline(Quick Timeline)
menuconfig 路径:Qt5 → qt5quicktimeline
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5QUICKTIMELINE |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
说明: 提供基于关键帧的时间线动画支持,常用于 Qt Design Studio 导出的动画项目。
4.5 qt5graphicaleffects(图形特效)
menuconfig 路径:Qt5 → qt5graphicaleffects
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5GRAPHICALEFFECTS |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
当 OpenGL 后端不可用时,menuconfig 中该选项显示为灰色,并出现以下提示:
comment "qt5graphicaleffects needs an OpenGL-capable backend"
depends on BR2_PACKAGE_QT5JSCORE_AVAILABLE
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
3
说明: 提供模糊、阴影、渐变等 GPU 加速的视觉特效。必须有 OpenGL 后端支持。在 RK3576 上使用 Mali GPU 驱动即可满足。
4.6 qt5lottie(Lottie 动画)
menuconfig 路径:Qt5 → qt5lottie
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5LOTTIE |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
说明: 支持播放 Bodymovin(Lottie)格式的矢量动画,常用于从 Adobe After Effects 导出的 UI 动效。
5. 多媒体与图形
5.1 qt5multimedia(多媒体框架)
menuconfig 路径:Qt5 → qt5multimedia
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5MULTIMEDIA |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
| selects(条件) | BR2_PACKAGE_QT5BASE_OPENGL_LIB(当 BR2_PACKAGE_QT5BASE_OPENGL 已启用时) |
说明: 提供音频播放/录制、视频播放、摄像头访问等多媒体功能。自动拉取 GUI 和 NETWORK 支持。若已启用 OpenGL,还会自动选中 OpenGL 库以支持视频渲染加速。在 RK3576 上配合 GStreamer 后端可实现硬件解码。
5.2 qt53d(3D 渲染)
menuconfig 路径:Qt5 → qt53d
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT53D |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
当 OpenGL 后端不可用时,menuconfig 中显示灰色提示:
comment "qt53d module needs an OpenGL-capable backend"
depends on BR2_PACKAGE_QT5JSCORE_AVAILABLE
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
3
说明: 提供 3D 场景渲染能力,包括网格加载、材质系统、光照和动画。同时依赖 JSCORE 和 OpenGL。自动拉取 declarative + quick 以支持 QML 中的 3D 集成。
5.3 qt5svg(SVG 支持)
menuconfig 路径:Qt5 → qt5svg
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SVG |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
说明: 提供 SVG 图像的加载和渲染支持。无额外依赖,仅自动拉取 GUI。
5.4 qt5imageformats(扩展图片格式)
menuconfig 路径:Qt5 → qt5imageformats
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5IMAGEFORMATS |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
说明: 为 Qt 添加 TIFF、MNG、TGA、WBMP 等额外图片格式的读写支持。
5.5 qt5charts(图表模块)
menuconfig 路径:Qt5 → qt5charts
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5CHARTS |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
说明: 提供折线图、柱状图、饼图等数据可视化控件。自动拉取 GUI 和 Widgets 支持。
6. 网络与通信
6.1 qt5websockets(WebSocket)
menuconfig 路径:Qt5 → qt5websockets
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WEBSOCKETS |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
6.2 qt5webchannel(Web 通道)
menuconfig 路径:Qt5 → qt5webchannel
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WEBCHANNEL |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5WEBSOCKETS |
重要: 启用 qt5webchannel 会自动拉取 qt5websockets。这是一个容易被忽略的隐式依赖——在 menuconfig 中勾选 webchannel 后,websockets 会自动被选中。
6.3 qt5mqtt(MQTT 协议)
menuconfig 路径:Qt5 → qt5mqtt
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5MQTT |
| 类型 | bool |
说明: 提供 MQTT 客户端实现,适用于 IoT 场景。无额外依赖。
6.4 qt5coap(CoAP 协议)
menuconfig 路径:Qt5 → qt5coap
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5COAP |
| 类型 | bool |
说明: 提供 CoAP(受限应用协议)客户端,适用于资源受限的 IoT 设备通信。无额外依赖。
6.5 qt5remoteobjects(远程对象)
menuconfig 路径:Qt5 → qt5remoteobjects
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5REMOTEOBJECTS |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
说明: 提供进程间/设备间的 Qt 对象共享机制,支持 TCP 和本地 Socket 传输。
6.6 qt5knx(KNX 协议)
menuconfig 路径:Qt5 → qt5knx
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5KNX |
| 类型 | bool |
说明: 提供 KNX 智能楼宇协议支持。无额外依赖。
6.7 qt5opcua(OPC UA 协议)
menuconfig 路径:Qt5 → qt5opcua
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5OPCUA |
| 类型 | bool |
说明: 提供 OPC UA 工业通信协议支持,适用于工业自动化场景。无额外依赖。
7. 硬件接口
7.1 qt5serialport(串口通信)
menuconfig 路径:Qt5 → qt5serialport
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SERIALPORT |
| 类型 | bool |
说明: 提供跨平台的串口访问 API。无额外依赖。在 RK3576 上可用于访问 UART 串口设备。
7.2 qt5serialbus(串行总线)
menuconfig 路径:Qt5 → qt5serialbus
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SERIALBUS |
| 类型 | bool |
| depends on | BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 |
| selects | BR2_PACKAGE_QT5SERIALPORT |
当工具链内核头文件版本低于 3.6 时,menuconfig 中显示灰色提示:
comment "qt5serialbus needs headers >= 3.6"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_62
重要: 启用 qt5serialbus 会自动拉取 qt5serialport。该模块提供 CAN 总线、Modbus 等工业串行总线协议支持。RK3576 的工具链头文件版本远高于 3.6,此依赖自动满足。
7.3 qt5sensors(传感器框架)
menuconfig 路径:Qt5 → qt5sensors
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SENSORS |
| 类型 | bool |
说明: 提供加速度计、陀螺仪、光线传感器等硬件传感器的统一访问接口。无额外依赖。
7.4 qt5connectivity(蓝牙/NFC 连接)
menuconfig 路径:Qt5 → qt5connectivity
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5CONNECTIVITY |
| 类型 | bool |
| depends on | BR2_PACKAGE_NEARD 或 BR2_PACKAGE_BLUEZ5_UTILS |
| selects | BR2_PACKAGE_QT5BASE_CONCURRENT |
| selects | BR2_PACKAGE_QT5BASE_DBUS |
当系统中既未启用 neard 也未启用 bluez5_utils 时,menuconfig 中显示灰色提示:
comment "qt5connectivity needs neard and/or bluez5_utils"
depends on !BR2_PACKAGE_NEARD && !BR2_PACKAGE_BLUEZ5_UTILS2
说明: 提供蓝牙(经典/BLE)和 NFC 通信支持。至少需要启用 neard(NFC)或 bluez5_utils(蓝牙)之一。自动拉取 Concurrent 和 D-Bus 支持。
7.5 qt5location(定位服务)
menuconfig 路径:Qt5 → qt5location
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5LOCATION |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
说明: 提供地理定位、地图显示和导航路由功能。自动拉取 GUI 支持。
8. Web 引擎
Web 引擎是 Qt 中最重量级的模块,依赖条件极为严格。RK3576 的 aarch64 + glibc 工具链可以满足大部分条件,但需要确保 GPU 驱动提供完整的 OpenGL + EGL 支持。
8.1 qt5webengine(Chromium 内核浏览器引擎)
menuconfig 路径:Qt5 → qt5webengine
依赖条件(全部必须满足):
| 依赖项 | 说明 |
|---|---|
BR2_PACKAGE_QT5_GL_AVAILABLE | 需要 OpenGL 后端可用 |
BR2_PACKAGE_QT5_EGL_AVAILABLE | 需要 EGL 后端可用 |
BR2_PACKAGE_HAS_UDEV | 需要 udev 设备管理 |
BR2_TOOLCHAIN_USES_GLIBC | 必须使用 glibc 工具链(不支持 musl/uclibc) |
BR2_TOOLCHAIN_GCC_AT_LEAST_8 | GCC 版本 ≥ 8 |
BR2_HOST_GCC_AT_LEAST_4_9 | 宿主机 GCC 版本 ≥ 4.9 |
BR2_SHARED_LIBS | 必须使用动态链接库 |
BR2_TOOLCHAIN_HAS_THREADS | 工具链需支持线程 |
BR2_USE_WCHAR | 工具链需支持宽字符 |
当条件不满足时,menuconfig 中显示灰色提示:
comment "qt5webengine needs udev /dev management and a glibc toolchain w/ gcc >= 8, host gcc >= 4.9, wchar, threads, dynamic library"
comment "qt5webengine needs an OpenGL and EGL-capable backend"2
自动拉取的外部依赖(selects):
| 自动拉取的包 | 说明 |
|---|---|
host-nodejs | 构建时需要 Node.js |
ffmpeg | 音视频编解码 |
lcms2 | 色彩管理 |
libevent | 事件驱动库 |
libglib2 | GLib 基础库 |
libnss | 网络安全服务 |
libvpx | VP8/VP9 视频编解码 |
libxkbcommon | 键盘映射处理 |
libxml2 | XML 解析 |
libxslt | XSLT 转换 |
minizip | ZIP 压缩 |
opus | 音频编解码 |
re2 | 正则表达式引擎 |
snappy | 快速压缩 |
webp | WebP 图片格式 |
自动拉取的 Qt 内部模块(selects):
| 自动拉取的 Qt 选项 | 说明 |
|---|---|
BR2_PACKAGE_QT5BASE_DBUS | D-Bus 支持 |
BR2_PACKAGE_QT5BASE_EGLFS | EGL 全屏平台插件 |
BR2_PACKAGE_QT5BASE_FONTCONFIG | 字体配置 |
BR2_PACKAGE_QT5BASE_HARFBUZZ | 文本整形引擎 |
BR2_PACKAGE_QT5BASE_JPEG | JPEG 图片支持 |
BR2_PACKAGE_QT5BASE_ICU | ICU 国际化 |
BR2_PACKAGE_QT5BASE_GUI | GUI 支持 |
BR2_PACKAGE_QT5BASE_PNG | PNG 图片支持 |
BR2_PACKAGE_QT5BASE_WIDGETS | Widgets 支持 |
BR2_PACKAGE_QT5DECLARATIVE | QML 引擎 |
BR2_PACKAGE_QT5DECLARATIVE_QUICK | Quick 模块 |
BR2_PACKAGE_QT5QUICKCONTROLS | Quick Controls 1 |
BR2_PACKAGE_QT5QUICKCONTROLS2 | Quick Controls 2 |
BR2_PACKAGE_QT5WEBCHANNEL | Web 通道 |
重要: qt5webengine 是依赖链最长的模块。启用它会自动拉取约 15 个外部库和 14 个 Qt 内部选项。由于 webchannel 又会自动拉取 websockets,实际影响范围更大。构建时间通常在 1-3 小时(取决于宿主机性能)。
子选项:
menuconfig 路径:Qt5 → qt5webengine → Enable proprietary codecs
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS |
| 类型 | bool |
说明: 启用 H.264、H.265、AAC 等专有编解码器支持。注意许可证合规性。
menuconfig 路径:Qt5 → qt5webengine → Enable ALSA
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WEBENGINE_ALSA |
| 类型 | bool |
| selects | BR2_PACKAGE_ALSA_LIB |
说明: 启用 ALSA 音频后端。自动拉取 alsa-lib。
8.2 qt5webkit(WebKit 引擎)
menuconfig 路径:Qt5 → qt5webkit
依赖条件:
| 依赖项 | 说明 |
|---|---|
BR2_SHARED_LIBS | 必须使用动态链接库 |
BR2_PACKAGE_QT5JSCORE_AVAILABLE | 需要 JSCORE 可用 |
BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 | GCC 版本 ≥ 4.9 |
BR2_HOST_GCC_AT_LEAST_4_9 | 宿主机 GCC 版本 ≥ 4.9 |
BR2_TOOLCHAIN_HAS_THREADS | 工具链需支持线程 |
非 BR2_BINFMT_FLAT | 不支持 flat 二进制格式 |
| 非 MIPS 软浮点 | 不支持 MIPS 软浮点配置 |
当条件不满足时,menuconfig 中显示灰色提示:
comment "qt5webkit needs a toolchain w/ dynamic library, gcc >= 4.9, host gcc >= 4.9, threads"自动拉取的外部依赖(selects):
| 自动拉取的包 | 说明 |
|---|---|
gstreamer1 | GStreamer 多媒体框架 |
gst1-plugins-base | GStreamer 基础插件 |
icu | ICU 国际化库 |
jpeg | JPEG 图片库 |
leveldb | LevelDB 键值存储 |
libpng | PNG 图片库 |
openssl | OpenSSL 加密库 |
libxml2 | XML 解析 |
libxslt | XSLT 转换 |
sqlite | SQLite 数据库 |
webp | WebP 图片格式 |
woff2 | WOFF2 字体格式 |
自动拉取的 Qt 内部模块(selects):
| 自动拉取的 Qt 选项 | 说明 |
|---|---|
BR2_PACKAGE_QT5BASE_ICU | ICU 国际化 |
BR2_PACKAGE_QT5BASE_GUI | GUI 支持 |
BR2_PACKAGE_QT5BASE_WIDGETS | Widgets 支持 |
BR2_PACKAGE_QT5LOCATION | 定位服务 |
BR2_PACKAGE_QT5SENSORS | 传感器框架 |
BR2_PACKAGE_QT5WEBCHANNEL | Web 通道 |
说明: qt5webkit 是较老的 Web 引擎,基于 WebKit。相比 qt5webengine 更轻量,但功能和安全性不如 Chromium 内核。注意它会自动拉取 qt5location 和 qt5sensors。
8.3 qt5webview(Web 视图)
menuconfig 路径:Qt5 → qt5webview
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WEBVIEW |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5WEBENGINE |
当 qt5webengine 未启用时,menuconfig 中显示灰色提示:
comment "qt5webview needs qt5webengine module"
depends on !BR2_PACKAGE_QT5WEBENGINE2
说明: 提供轻量级的 Web 内容显示组件,依赖 qt5webengine 作为后端。必须先启用 qt5webengine 才能看到此选项。
9. 工具与辅助
9.1 qt5tools(开发工具集)
menuconfig 路径:Qt5 → qt5tools
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS |
| 类型 | bool |
qt5tools 本身无额外依赖,但其子选项各有不同的依赖关系:
子选项一览:
menuconfig 路径:Qt5 → qt5tools → linguist tools
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS |
| 类型 | bool |
提供
lrelease、lupdate等国际化翻译工具。
menuconfig 路径:Qt5 → qt5tools → qdoc tool
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_QDOC_TOOL |
| 类型 | bool |
| depends on | BR2_PACKAGE_LLVM(需要 LLVM/Clang) |
文档生成工具,依赖 LLVM。在嵌入式场景中较少使用。
menuconfig 路径:Qt5 → qt5tools → pixeltool
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_PIXELTOOL |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
| selects | BR2_PACKAGE_QT5BASE_PNG |
像素级屏幕放大镜工具,自动拉取 GUI、Widgets 和 PNG 支持。
menuconfig 路径:Qt5 → qt5tools → qtdiag
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_QTDIAG |
| 类型 | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Qt 诊断工具,输出平台插件、OpenGL、字体等运行时信息。调试时非常有用。
menuconfig 路径:Qt5 → qt5tools → qtpaths
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_QTPATHS |
| 类型 | bool |
查询 Qt 标准路径(安装目录、插件目录等)的命令行工具。
menuconfig 路径:Qt5 → qt5tools → qtplugininfo
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5TOOLS_QTPLUGININFO |
| 类型 | bool |
查询 Qt 插件元数据的命令行工具。
9.2 qt5virtualkeyboard(虚拟键盘)
menuconfig 路径:Qt5 → qt5virtualkeyboard
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5VIRTUALKEYBOARD |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
| selects | BR2_PACKAGE_QT5SVG |
说明: 提供触屏虚拟键盘,自动拉取 declarative + quick + svg。对于无物理键盘的嵌入式触屏设备(如 RK3576 开发板配合触摸屏)非常实用。
子选项:
menuconfig 路径:Qt5 → qt5virtualkeyboard → language layouts
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS |
| 类型 | string |
| 默认值 | "en_GB" |
指定要包含的键盘布局语言列表,多个语言用空格分隔。例如
"en_GB zh_CN"表示同时包含英文和中文布局。
menuconfig 路径:Qt5 → qt5virtualkeyboard → handwriting
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING |
| 类型 | bool |
启用手写识别输入支持。
menuconfig 路径:Qt5 → qt5virtualkeyboard → arrow key navigation
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION |
| 类型 | bool |
启用方向键导航支持,适用于非触屏场景。
9.3 qt5xmlpatterns(XML 模式)
menuconfig 路径:Qt5 → qt5xmlpatterns
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5XMLPATTERNS |
| 类型 | bool |
说明: 提供 XPath、XQuery、XSLT 和 XML Schema 验证支持。无额外依赖。
9.4 qt5script(脚本引擎,已废弃)
menuconfig 路径:Qt5 → qt5script
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SCRIPT |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
⚠ 已废弃: Qt Script 模块已被标记为 deprecated,新项目应使用 QML/JavaScript 替代。仅为兼容旧代码保留。
9.5 qt5scxml(状态机 XML)
menuconfig 路径:Qt5 → qt5scxml
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SCXML |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
说明: 提供 SCXML 状态机支持,可在 QML 中使用声明式状态机。自动拉取 declarative。
9.6 qt5doc(文档与示例)
menuconfig 路径:Qt5 → qt5doc
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5DOC |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_EXAMPLES |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
说明: 安装 Qt 文档和示例程序。会显著增加镜像体积,通常仅在开发阶段启用。
9.7 qt5speech(语音合成)
menuconfig 路径:Qt5 → qt5speech
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5SPEECH |
| 类型 | bool |
说明: 提供文本转语音(TTS)功能。无强制依赖,但可选配 flite 或 speech-dispatcher 作为后端引擎。
9.8 qt5enginio(云后端,已废弃)
menuconfig 路径:Qt5 → qt5enginio
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5ENGINIO |
| 类型 | bool |
| selects | BR2_PACKAGE_OPENSSL |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
⚠ 已废弃: Qt Cloud Services (Enginio) 已停止服务。此模块仅为历史兼容保留,不建议在新项目中使用。自动拉取 OpenSSL、GUI 和 NETWORK。
10. Wayland 与 X11 支持
10.1 qt5wayland(Wayland 平台支持)
menuconfig 路径:Qt5 → qt5wayland
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WAYLAND |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| selects | BR2_PACKAGE_WAYLAND |
当 OpenGL 后端不可用时,menuconfig 中显示灰色提示:
comment "qt5wayland needs an OpenGL-capable backend"
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
子选项:
menuconfig 路径:Qt5 → qt5wayland → compositor
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5WAYLAND_COMPOSITOR |
| 类型 | bool |
说明(实验性): 启用 Qt Wayland Compositor 功能,允许用 Qt 编写 Wayland 合成器。该功能标记为实验性,生产环境请谨慎使用。
RK3576 建议: RK3576 的 Mali GPU 驱动同时支持 Wayland 和 X11。若使用 Weston 作为 Wayland 合成器,启用 qt5wayland 即可让 Qt 应用作为 Wayland 客户端运行。qt5wayland 会自动拉取 wayland 库。
10.2 qt5x11extras(X11 扩展)
menuconfig 路径:Qt5 → qt5x11extras
| 属性 | 值 |
|---|---|
| Config 符号 | BR2_PACKAGE_QT5X11EXTRAS |
| 类型 | bool |
| depends on | BR2_PACKAGE_QT5BASE_XCB |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
说明: 提供 X11 特有的 API(如获取 Display 句柄、屏幕信息等)。仅在使用 XCB(X11)平台插件时可用。自动拉取 Widgets 支持。若系统使用 Wayland 而非 X11,则无需启用此模块。
11. GPU 驱动依赖
RK3576 搭载 Mali G52 MC3 GPU,Qt 的 OpenGL/EGL 相关模块均依赖正确的 GPU 驱动配置。以下是 GPU 驱动与 Qt 模块之间的依赖关系:
11.1 关键配置项
| 配置项 | 说明 | 影响的模块 |
|---|---|---|
BR2_PACKAGE_QT5_GL_AVAILABLE | OpenGL 后端是否可用 | qt5graphicaleffects, qt53d, qt5wayland, qt5webengine |
BR2_PACKAGE_QT5_GL_AVAILABLE | GL 库是否可用 | qt5webengine |
BR2_PACKAGE_QT5_EGL_AVAILABLE | EGL 是否可用 | qt5webengine |
BR2_PACKAGE_QT5BASE_OPENGL | OpenGL 是否已启用 | qt5declarative(quick), qt5multimedia 的条件 selects |
BR2_PACKAGE_QT5BASE_OPENGL_LIB | OpenGL 库选择 | 被 quick module 和 multimedia 条件拉取 |
BR2_PACKAGE_QT5BASE_EGLFS | EGL 全屏平台插件 | 被 qt5webengine 自动拉取 |
11.2 RK3576 推荐配置
在 RK3576 上使用 Mali G52 GPU 驱动时,以下配置项通常自动满足:
BR2_PACKAGE_QT5_GL_AVAILABLE=y # Mali 驱动提供
BR2_PACKAGE_QT5_GL_AVAILABLE=y # Mali 驱动提供
BR2_PACKAGE_QT5_EGL_AVAILABLE=y # Mali 驱动提供
BR2_PACKAGE_QT5BASE_OPENGL=y # 建议启用
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y # 建议启用
BR2_PACKAGE_QT5BASE_EGLFS=y # 推荐的嵌入式显示方案2
3
4
5
6
注意: 若 Mali GPU 驱动未正确安装或配置,所有依赖
OPENGL_AVAILABLE的模块(qt5graphicaleffects、qt53d、qt5wayland、qt5webengine)在 menuconfig 中将显示为灰色不可选状态。
12. 模块依赖关系图
以下 ASCII 树展示了 Qt5 各模块之间的 selects(自动拉取)和 depends on(前置依赖)关系。→ 表示 selects(自动拉取),⇐ 表示 depends on(前置条件)。
qt5base (核心)
├── GUI 后端 [choice 互斥]
│ ├── linuxfb ── 纯软件帧缓冲
│ ├── eglfs ── EGL 全屏(推荐嵌入式)
│ └── xcb ── X11 窗口系统
├── OpenGL API [choice 互斥]
│ ├── Desktop OpenGL ⇐ 需要 libGL(嵌入式通常不可用)
│ └── OpenGL ES 2.0+ ⇐ 需要 libGLES(RK3576 Mali GPU 选此项)
├── 图片格式 [独立 bool]
│ ├── gif
│ ├── jpeg
│ └── png
├── 数据库驱动 [独立 bool]
│ ├── mysql
│ ├── psql
│ └── sqlite (none/qt/system) [choice 互斥]
├── 字体引擎 [独立 bool]
│ ├── fontconfig
│ └── harfbuzz
├── 功能模块 [独立 bool]
│ ├── concurrent
│ ├── dbus
│ ├── gui
│ ├── network (+openssl/+libproxy)
│ ├── printsupport
│ ├── widgets
│ ├── icu
│ ├── tslib
│ └── examples
│
├─── QML / Quick 模块链 ⇐ JSCORE_AVAILABLE
│ │
│ ├── qt5declarative
│ │ → gui
│ │ └── quick module
│ │ → gui
│ │ → opengl_lib (条件: opengl 已启用)
│ │
│ ├── qt5quickcontrols ─────→ declarative + quick
│ ├── qt5quickcontrols2 ────→ declarative + quick
│ ├── qt5quicktimeline ─────→ declarative + quick
│ ├── qt5lottie ────────────→ declarative + quick
│ │
│ ├── qt5graphicaleffects ──→ declarative + quick
│ │ ⇐ OPENGL_AVAILABLE (额外依赖)
│ │
│ └── qt5virtualkeyboard ──→ declarative + quick + svg
│
├─── 3D / 图形 ⇐ JSCORE_AVAILABLE + OPENGL_AVAILABLE
│ └── qt53d ────────────────→ gui + declarative + quick
│
├─── 多媒体与图形
│ ├── qt5multimedia ────────→ gui + network (+opengl_lib 条件)
│ ├── qt5svg ───────────────→ gui
│ ├── qt5imageformats ──────→ gui
│ └── qt5charts ────────────→ gui + widgets
│
├─── 网络与通信
│ ├── qt5websockets ────────→ network
│ ├── qt5webchannel ────────→ websockets (→ network)
│ ├── qt5mqtt (无额外依赖)
│ ├── qt5coap (无额外依赖)
│ ├── qt5remoteobjects ─────→ network
│ ├── qt5knx (无额外依赖)
│ └── qt5opcua (无额外依赖)
│
├─── 硬件接口
│ ├── qt5serialport (无额外依赖)
│ ├── qt5serialbus ─────────→ serialport
│ │ ⇐ TOOLCHAIN_HEADERS ≥ 3.6
│ ├── qt5sensors (无额外依赖)
│ ├── qt5connectivity ──────→ concurrent + dbus
│ │ ⇐ neard 或 bluez5_utils
│ └── qt5location ──────────→ gui
│
├─── Web 引擎
│ ├── qt5webengine ─────────→ [15 个外部库] + dbus + eglfs + fontconfig
│ │ │ + harfbuzz + jpeg + icu + gui + png + widgets
│ │ │ + declarative + quick + quickcontrols
│ │ │ + quickcontrols2 + webchannel (→ websockets)
│ │ ⇐ glibc + gcc≥8 + udev + GL + EGL + dynamic + threads + wchar
│ │ ├── proprietary codecs (子选项)
│ │ └── alsa ─────────────→ alsa-lib
│ │
│ ├── qt5webkit ────────────→ [12 个外部库] + icu + gui + widgets
│ │ │ + location + sensors + webchannel (→ websockets)
│ │ ⇐ dynamic + JSCORE + gcc≥4.9 + threads
│ │
│ └── qt5webview
│ ⇐ qt5webengine (必须先启用)
│
├─── 工具与辅助
│ ├── qt5tools (无额外依赖)
│ │ ├── linguist_tools
│ │ ├── qdoc_tool ⇐ LLVM
│ │ ├── pixeltool ────────→ gui + widgets + png
│ │ ├── qtdiag ───────────→ gui
│ │ ├── qtpaths
│ │ └── qtplugininfo
│ ├── qt5xmlpatterns (无额外依赖)
│ ├── qt5script ⇐ JSCORE (已废弃)
│ ├── qt5scxml ─────────────→ declarative
│ │ ⇐ JSCORE
│ ├── qt5doc ───────────────→ examples + declarative + quick
│ │ ⇐ JSCORE
│ ├── qt5speech (无额外依赖)
│ └── qt5enginio ───────────→ openssl + gui + network (已废弃)
│
├─── 显示服务器支持
│ ├── qt5wayland ───────────→ wayland
│ │ ⇐ OPENGL_AVAILABLE
│ │ └── compositor (子选项, 实验性)
│ └── qt5x11extras ─────────→ widgets
│ 平台插件
│
└─── 跨模块自动拉取链(关键路径)
├── webchannel → websockets → network
├── serialbus → serialport
├── webengine → quickcontrols + quickcontrols2 → declarative + quick
├── webengine → webchannel → websockets → network
├── webkit → location + sensors + webchannel → websockets
├── virtualkeyboard → declarative + quick + svg → gui
└── connectivity → concurrent + dbus2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
13. menuconfig 完整列表对照
下表列出所有 37 个用户可见的 Qt5 扩展模块条目(按字母顺序排列),映射其 menuconfig 配置符号、所属文档章节及关键备注。不包含内部辅助包(如 qt5webengine-chromium、qt5webengine-chromium-catapult)。
其中 36 个为独立顶层模块包,第 37 个为 qt5declarative 内的 quick module 子选项(BR2_PACKAGE_QT5DECLARATIVE_QUICK),它在 menuconfig 中作为独立可操作条目存在于 Qt5 → qt5declarative → quick module 路径下。
| 序号 | 模块名称 | menuconfig 符号 | 文档章节 | 关键备注 |
|---|---|---|---|---|
| 1 | qt53d | BR2_PACKAGE_QT53D | 5. 多媒体与图形 | depends JSCORE + OPENGL_AVAILABLE;selects gui + declarative + quick |
| 2 | qt5charts | BR2_PACKAGE_QT5CHARTS | 5. 多媒体与图形 | selects gui + widgets |
| 3 | qt5coap | BR2_PACKAGE_QT5COAP | 6. 网络与通信 | 无额外依赖;CoAP IoT 协议 |
| 4 | qt5connectivity | BR2_PACKAGE_QT5CONNECTIVITY | 7. 硬件接口 | depends neard 或 bluez5_utils;selects concurrent + dbus |
| 5 | qt5declarative | BR2_PACKAGE_QT5DECLARATIVE | 4. QML / Quick | depends JSCORE;selects gui;含 quick module 子选项 |
| 6 | qt5declarative (quick) | BR2_PACKAGE_QT5DECLARATIVE_QUICK | 4. QML / Quick | qt5declarative 子选项;selects gui;条件 selects opengl_lib |
| 7 | qt5doc | BR2_PACKAGE_QT5DOC | 9. 工具与辅助 | depends JSCORE;selects examples + declarative + quick |
| 8 | qt5enginio | BR2_PACKAGE_QT5ENGINIO | 9. 工具与辅助 | 已废弃;selects openssl + gui + network |
| 9 | qt5graphicaleffects | BR2_PACKAGE_QT5GRAPHICALEFFECTS | 4. QML / Quick | depends JSCORE + OPENGL_AVAILABLE;selects declarative + quick |
| 10 | qt5imageformats | BR2_PACKAGE_QT5IMAGEFORMATS | 5. 多媒体与图形 | selects gui;添加 TIFF/MNG/TGA 等格式 |
| 11 | qt5knx | BR2_PACKAGE_QT5KNX | 6. 网络与通信 | 无额外依赖;KNX 智能楼宇协议 |
| 12 | qt5location | BR2_PACKAGE_QT5LOCATION | 7. 硬件接口 | selects gui;地理定位与地图 |
| 13 | qt5lottie | BR2_PACKAGE_QT5LOTTIE | 4. QML / Quick | depends JSCORE;selects declarative + quick |
| 14 | qt5mqtt | BR2_PACKAGE_QT5MQTT | 6. 网络与通信 | 无额外依赖;MQTT IoT 协议 |
| 15 | qt5multimedia | BR2_PACKAGE_QT5MULTIMEDIA | 5. 多媒体与图形 | selects gui + network;条件 selects opengl_lib |
| 16 | qt5opcua | BR2_PACKAGE_QT5OPCUA | 6. 网络与通信 | 无额外依赖;OPC UA 工业协议 |
| 17 | qt5quickcontrols | BR2_PACKAGE_QT5QUICKCONTROLS | 4. QML / Quick | depends JSCORE;selects declarative + quick |
| 18 | qt5quickcontrols2 | BR2_PACKAGE_QT5QUICKCONTROLS2 | 4. QML / Quick | depends JSCORE;selects declarative + quick;推荐替代 controls 1 |
| 19 | qt5quicktimeline | BR2_PACKAGE_QT5QUICKTIMELINE | 4. QML / Quick | depends JSCORE;selects declarative + quick |
| 20 | qt5remoteobjects | BR2_PACKAGE_QT5REMOTEOBJECTS | 6. 网络与通信 | selects network;进程间对象共享 |
| 21 | qt5script | BR2_PACKAGE_QT5SCRIPT | 9. 工具与辅助 | 已废弃;depends JSCORE |
| 22 | qt5scxml | BR2_PACKAGE_QT5SCXML | 9. 工具与辅助 | depends JSCORE;selects declarative |
| 23 | qt5sensors | BR2_PACKAGE_QT5SENSORS | 7. 硬件接口 | 无额外依赖;传感器统一接口 |
| 24 | qt5serialbus | BR2_PACKAGE_QT5SERIALBUS | 7. 硬件接口 | depends headers >= 3.6;selects serialport;CAN/Modbus |
| 25 | qt5serialport | BR2_PACKAGE_QT5SERIALPORT | 7. 硬件接口 | 无额外依赖;串口通信 |
| 26 | qt5speech | BR2_PACKAGE_QT5SPEECH | 9. 工具与辅助 | 无强制依赖;可选 flite/speechd 后端 |
| 27 | qt5svg | BR2_PACKAGE_QT5SVG | 5. 多媒体与图形 | selects gui;SVG 渲染 |
| 28 | qt5tools | BR2_PACKAGE_QT5TOOLS | 9. 工具与辅助 | 无额外依赖;含 6 个子选项工具 |
| 29 | qt5virtualkeyboard | BR2_PACKAGE_QT5VIRTUALKEYBOARD | 9. 工具与辅助 | depends JSCORE;selects declarative + quick + svg;含语言/手写子选项 |
| 30 | qt5wayland | BR2_PACKAGE_QT5WAYLAND | 10. Wayland 与 X11 | depends OPENGL_AVAILABLE;selects wayland;含 compositor 子选项 |
| 31 | qt5webchannel | BR2_PACKAGE_QT5WEBCHANNEL | 6. 网络与通信 | selects websockets(隐式拉取链) |
| 32 | qt5webengine | BR2_PACKAGE_QT5WEBENGINE | 8. Web 引擎 | 依赖最多;selects 15 外部库 + 14 Qt 内部选项;含 codecs/alsa 子选项 |
| 33 | qt5webkit | BR2_PACKAGE_QT5WEBKIT | 8. Web 引擎 | selects 12 外部库 + location + sensors + webchannel |
| 34 | qt5websockets | BR2_PACKAGE_QT5WEBSOCKETS | 6. 网络与通信 | selects network;WebSocket 协议 |
| 35 | qt5webview | BR2_PACKAGE_QT5WEBVIEW | 8. Web 引擎 | depends qt5webengine;轻量 Web 显示 |
| 36 | qt5x11extras | BR2_PACKAGE_QT5X11EXTRAS | 10. Wayland 与 X11 | depends XCB;selects widgets |
| 37 | qt5xmlpatterns | BR2_PACKAGE_QT5XMLPATTERNS | 9. 工具与辅助 | 无额外依赖;XPath/XQuery/XSLT |
计数校验: 上表共 37 行。其中序号 1-5 和 7-37 为 36 个独立顶层模块包(按字母序:qt53d, qt5charts, qt5coap, qt5connectivity, qt5declarative, qt5doc, qt5enginio, qt5graphicaleffects, qt5imageformats, qt5knx, qt5location, qt5lottie, qt5mqtt, qt5multimedia, qt5opcua, qt5quickcontrols, qt5quickcontrols2, qt5quicktimeline, qt5remoteobjects, qt5script, qt5scxml, qt5sensors, qt5serialbus, qt5serialport, qt5speech, qt5svg, qt5tools, qt5virtualkeyboard, qt5wayland, qt5webchannel, qt5webengine, qt5webkit, qt5websockets, qt5webview, qt5x11extras, qt5xmlpatterns)。序号 6 为
qt5declarative内的quick module子选项,它在 menuconfig 中作为独立可操作条目存在。合计 37 个用户可见的 menuconfig 条目。