12浏览
查看: 12|回复: 1

[M10项目] 行空板M10上的Qt6 移植实践

[复制链接]
一、Qt6 简介
Qt6 是一个成熟且功能强大的 跨平台 C++ 应用程序开发框架,广泛应用于桌面、移动以及嵌入式系统领域。它为开发者提供了一套高度统一的 API,使得同一套代码可以在不同平台上运行,大幅降低了跨平台开发的成本。
在功能层面,Qt6 不仅支持传统的 Qt Widgets,还提供了更现代化的 Qt Quick / QML 技术栈,用于构建高性能、动画流畅的图形界面。此外,Qt6 还集成了大量实用模块,例如:
  • 网络通信(Qt Network)
  • 多媒体处理(Qt Multimedia)
  • 数据库访问(Qt SQL)
  • OpenGL / 3D 渲染
  • 串口、蓝牙、传感器支持

相较于 Qt5,Qt6 在架构上更加现代化,对 C++17 支持更完善,同时在嵌入式与图形渲染方面进行了大量重构,更适合新一代嵌入式设备。

二、行空板 M10 系统环境说明
行空板 M10 运行的是 Debian 10(Buster)ARM 架构系统,整体环境偏向嵌入式 Linux。由于官方并未直接提供适配 M10 的 Qt6 运行库,因此需要自行完成 Qt6 的移植与编译。
考虑到 M10 本身算力有限、直接在板端编译 Qt6 时间成本较高,本文采用的是一种 更高效、可复现性更强 的方式:
使用 QEMU 虚拟机模拟 Debian 10 ARM 环境进行 Qt6 编译

三、Qt6 移植方案与整体思路
笔者的移植流程大致如下:
  • 在 PC 上使用 QEMU 启动 Debian 10 ARM 虚拟机
  • 在虚拟机中编译 Qt6(目标架构与 M10 完全一致)
  • 将编译好的 Qt6 拷贝至行空板 M10 运行
  • 在 M10 上进行实际运行验证与 Demo 测试

这种方式的优势在于:
  • 编译环境稳定、速度快
  • 避免交叉编译工具链配置复杂的问题
  • 与 M10 系统 ABI 完全一致,兼容性更好


四、Qt6 编译时的关键注意事项
在 Qt6 构建过程中,有几个非常关键的参数与配置点需要特别注意:
1. OpenGL 必须使用 ES 版本
行空板 M10 使用的是嵌入式 GPU,因此在 Qt6 构建参数中:
OpenGL 一定要选择 OpenGL ES,而不是 Desktop OpenGL
否则会在运行时出现无法创建 OpenGL 上下文、程序直接崩溃等问题。
2. 建议使用静态编译
为了减少运行时依赖,并简化部署过程,强烈建议使用静态构建(static build)
  • 避免系统中缺失某些 Qt 运行库
  • 便于在嵌入式设备上直接拷贝运行
  • 减少环境差异带来的问题

虽然静态编译会导致最终体积增大,但在嵌入式场景中,这是一个非常值得的权衡。
3. 图形后端选择 xcb
行空板 M10 默认使用的是 lightdm + gtk-greeter 作为显示管理器,底层图形系统为 X11
因此在 Qt6 的平台插件选择上:
直接使用 xcb 即可,无需额外配置 Wayland 或 DRM
这也是当前最稳定、最省心的选择。

五、Qt Multimedia 支持说明(视频播放)
如果你的 Qt6 项目中需要使用 Qt Multimedia 模块(例如视频播放、音频输出等),那么在行空板 M10 上还需要额外注意一点:
必须安装 GStreamer 相关库!!!
其中最关键的是:



gstreamer1.0-libav

该库为 Qt Multimedia 提供了必要的编解码支持,否则即便程序能够正常启动,也可能出现:
  • 无法播放视频
  • 音频无输出
  • Multimedia 模块初始化失败

安装完成后,Qt6 的多媒体功能即可在 M10 上正常工作。

六、Qt6 项目移植 Demo 展示
在完成 Qt6 的编译与部署后,笔者在行空板 M10 上运行了一个 Qt6 GUI 示例项目,验证了以下功能:
  • Qt Widgets / Qt Quick 正常显示
  • 窗口系统与触控交互工作正常
  • OpenGL ES 渲染可用
  • Multimedia 模块可正常加载并播放内容

这表明 Qt6 在行空板 M10 上是完全可用的,可以作为实际项目开发的基础环境。

七、总结
通过 QEMU 模拟 Debian 10 ARM 环境并编译 Qt6,是一种 高效、稳定且适合嵌入式开发者的移植方案。只要在编译阶段正确选择:
  • OpenGL ES
  • xcb 图形后端
  • 合理的静态构建策略
  • 必要的多媒体依赖

就可以让 Qt6 在行空板 M10 上稳定运行,为后续开发复杂 GUI 应用、工业控制界面或嵌入式 AI 可视化项目打下坚实基础。
Qt6在触摸优化、硬件加速、视频解码优化或 Qt Quick 性能调优等方面有很大的发挥空间。

爱丽丝Alice  学徒
 楼主|

发表于 昨天 15:38

df平台论坛怎么这么难用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail