2026年3月31日,Qt官方正式发布鸿蒙版Qt,推出面向鸿蒙系统平板和PC设备的Qt 5.12.12 LTS适配版本。

🎯 快速了解

本文详细介绍了如何将第三方Qt开源软件移植到鸿蒙PC端的完整流程,包括:
…3. 详细配置:包含Windows下的具体命令和脚本示例
4. 实用技巧:如查找依赖的readelf -d命令
5. 问题排查:总结了常见错误现象及其解决方法

核心价值在于提供了一套标准化流程,帮助开发者快速将现有Qt应用迁移到鸿蒙生态,保护既有投入并丰富鸿蒙软件供给。

🗺️ 知识图谱

鸿蒙PC端Qt应用移植

两种工程形态

qmake工程(.pro)

CMake工程

环境准备

DevEco Studio

Qt for OHOS SDK

工具链配置

构建与集成

生成.so文件

与模板对接

拷贝共享库

配置应用库名

签名与运行

调试与排错

库依赖问题

架构不匹配

Qt版本问题

📚 内容解读

1. 背景与意义

Qt官方发布鸿蒙版Qt 5.12.12 LTS,完整保留了核心能力并深度适配鸿蒙系统架构。移植第三方Qt软件到鸿蒙PC端具有多重意义:

  • 保护既有投入,缩短上线周期
  • 快速补齐软件供给
  • 技术路线清晰,可持续演进
  • 促进跨平台协同

2. 环境准备

必备软件
  • HUAWEI DevEco Studio(含Native SDK、CMake、Ninja等)
  • 已为OHOS编译好的Qt5 SDK
  • Qt Creator(可选)或命令行qmake
路径约定

文中使用占位符表示关键路径,实际使用时需替换为本机实际安装位置:

  • DEVECO_SDK: DevEco自带的OpenHarmony Native SDK根目录
  • OHOS_QT_ROOT: 已构建的Qt for OHOS安装前缀
  • CMAKE_BIN: SDK自带的cmake可执行文件

3. 工程移植方法

3.1 qmake工程(.pro)处理

关键步骤:

  1. 在Qt Creator中配置OpenHarmony交叉编译套件
  2. 指定OHOS工具链中的C/C++编译器
  3. 将qmake指向OHOS_QT_ROOT下的qmake
  4. 打开第三方项目的.pro,切换到配置好的套件
  5. 执行qmake → 构建,得到lib<目标名>.so

注意事项:

  • 若原工程写死了平台判断,需增加对ohos的分支处理
  • 输出必须是共享库且导出符号满足QPA/启动约定
3.2 CMake工程处理

Windows命令行示例:

cmake -G "Ninja" \
-DCMAKE_PREFIX_PATH="C:/Qt/qt-5.12.12-ohos" \
-DCMAKE_TOOLCHAIN_FILE="D:/oh/.../ohos.toolchain.cmake" \
-DQt5_DIR="C:/Qt/qt-5.12.12-ohos/lib/cmake/Qt5" \
-DOHOS_ARCH=arm64-v8a ..

常见调整:

  • 将静态库构建改为SHARED
  • 确保find_package找到的组件在OHOS Qt中已构建
  • 检查头文件/库查找路径是否正确

附bat构建脚本:
文中提供了完整的Windows批处理脚本build_ohos.bat,自动化配置和构建过程。

4. 与DevEco模板对接

4.1 拷贝共享库

将以下文件放入对应ABI目录:

  • 应用库(如libnotepad.so)
  • libqohos.so(OHOS QPA插件)
  • Qt运行依赖库(如libQt5Core.so等)

目录结构示例:

entry/libs/arm64-v8a/
  libYourApp.so
  libqohos.so
  libQt5Core.so
  libQt5Gui.so
  ...
4.2 配置应用库名

QtAppConstants.ets中设置APP_LIBRARY_NAME常量,与实际文件名一致:

export const APP_LIBRARY_NAME = 'libYourApp.so';
4.3 签名与运行

在DevEco Studio中配置签名,连接设备或启动模拟器,编译安装HAP验证。

5. 调试与排错

文中提供了常见问题及其解决方案:

  • 启动即崩溃/找不到库 → 补全依赖.so
  • 仅模拟器可跑 → 检查架构一致性
  • libqohos.so错误 → 使用匹配版本的库
  • CMake找到桌面Qt → 强制指定OHOS Qt路径

🔍 关键要点总结

  1. 标准化流程:提供了从工程构建到模板集成的完整路径
  2. 双工程支持:同时覆盖qmake和CMake两种常见工程形态
  3. 详细配置:包含Windows下的具体命令和脚本示例
  4. 实用技巧:如查找依赖的readelf -d命令
  5. 问题排查:总结了常见错误现象及其解决方法

🌟 价值延伸

本文不仅是一篇技术指南,更是连接Qt生态与鸿蒙终端的重要桥梁。通过掌握这套方法,开发者可以:

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐