HarmonyOS鸿蒙PC的QT应用开发:(二、开发环境搭建及第一个HelloWorld)
2026年3.31日,QT官方正式发布鸿蒙版QT。本次开源发布正式推出面向鸿蒙系统平板和PC设备的Qt 5.12.12 LTS 适配版本,在完整保留 Qt 5.12.12 核心能力(含界面渲染、信号槽机制、跨平台 I/O、网络通信及数据库模块)的基础上,深度适配鸿蒙系统架构。本版本可降低开发者跨平台移植成本,加速 Qt 与鸿蒙生态融合,助力多场景鸿蒙应用高效开发。传统的PC上的QT应用是使用QtC
2026年3.31日,QT官方正式发布鸿蒙版QT。本次开源发布正式推出面向鸿蒙系统平板和PC设备的Qt 5.12.12 LTS 适配版本,在完整保留 Qt 5.12.12 核心能力(含界面渲染、信号槽机制、跨平台 I/O、网络通信及数据库模块)的基础上,深度适配鸿蒙系统架构。本版本可降低开发者跨平台移植成本,加速 Qt 与鸿蒙生态融合,助力多场景鸿蒙应用高效开发。
QT官方鸿蒙版开源地址:https://wiki.qt.io/Qt5.12.12_Open_Source_Release_for_HarmonyOS_zh
QT官方文档地址:https://wiki.qt.io/Qt_for_OpenHarmony/zh

在 HarmonyOS 上运行 Qt 应用,跟传统的PC上的QT应用不同。
传统的PC上的QT应用是使用QtCreator开发完成后,直接编译为可执行文件exe.。 而鸿蒙版QT的开发流程,则是使用鸿蒙版QT的SDK和qmake工具链,最终的编译产物为.so. 之后呢还需要鸿蒙的QT工程项目模版,把so加载进去,将应用编译打包为hap或app包。
本文接上篇《HarmonyOS鸿蒙PC的QT应用开发:(一、开发环境搭建及第一个HelloWorld)》
在上一篇章中,已经准备好了环境且编译出了QT的鸿蒙版的SDK。
本文介绍下鸿蒙版QT的第一个HelloWorld。为了简单起见,直接使用Qt自带的demo项目计算器calculator为例。
我的calculator项目demo源码位于:D:\Qt\Qt5.14.2\Examples\Qt-5.14.2\script\calculator目录下。
一、在 Windows 中为 HarmonyOS 构建 Qt 应用程序
以下内容的前提:已经安装了Qt 5.12 及以上(带Qt Creator的IDE)、DevEco studio、上一篇介绍的编译好的HarmonyOS版本的QT库,已经有HarmonyOS的设备。
注:后续为了方便使用,这个QT库可以编译好后提交到git仓库方便使用,其他小伙伴就不用再折腾编译QT源码了。
如,我编译的QT库路径及内容如下:


注意 Qt5 构建 + 多个选项,目前 Arch 是 arm64-v8a。
在 Qt Creator 中为 HarmonyOS 创建开发工具包
Qt Creator 前往编辑 → 偏好设置 → 构建套件
1、配置 Qt 版本
转到 Qt版本选项卡,单击添加按钮

转到安装 Qt 5.12.12 for OHOS 的文件夹(应安装在 PREFIX 指定的路径中),然后转到 bin 文件夹,选择 qmake 应用程序并单击打开。例如,之前使用 PREFIX=C:\Qt\qt-5.12.12-ohos 编译了 Qt 源代码,因此 qmake 将位于 C:\Qt\qt-5.12.12-ohos\bin\qmake。将名称设置为 Qt %{Qt:Version} for OHOS。此时,应该有信息表明没有可以为此 Qt 版本生成代码的编译器。

2、配置编译器
转到“编译器”选项卡。单击“添加”按钮,然后选择“自定义”→“C”
将名称设置为 OHOS Clang。
假设你已按照说明从源代码开始构建 Qt 5.12.12 for OHOS,那么应该已经安装了 llvm-mingw。如果没有,请按照 MinGW 工具链安装步骤执行Qt for HarmonyOS/zh#准备构建环境。
将 Make 路径设置为 MinGW 工具链附带的 mingw32-make.exe 可执行文件。它应位于 \bin\mingw32-make.exe。不要忘记将 替换为实际路径。
将 ABI 更改为arm - linux - generic - elf - 64bit

对于 c++ 编译器,请按照上述步骤操作。不过,这次请确保将名称设置为 OHOS Clang++,并在编译器路径中选择 clang++.exe。

3、配置构建套件
转到 构建套件选项卡,单击添加按钮
将名称设置为 OHOS Clang
将 Sysroot 设置为 D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native\sysroot。在 Compiler 部分,选择之前配置的 C(OHOS Clang) 和 C++(OHOS Clang++) 编译器。
在 Qt 版本中选择之前为 OHOS 配置的 Qt 5.12.12。
将 Qt mkspec 设置为 ohos-clang。
完整的套件应如下所示:

4、在 Qt Creator 中设置所需的环境变量
转到编辑→首选项→环境→系统,然后单击环境部分中的Change…按钮。
通过添加一行 NATIVE_OHOS_SDK=D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native 添加新的环境变量

注意: 踩坑点,如果你使用的是Qt Creator 的5.14或者5.15等高级版本,没有图上的环境变量一项。
这时候你可以把其配置为windows的环境变量亦可。
如下图所示:

5、获取 DevEco 项目模板
可以在以下地址获取最新的用于构建最终 OpenHarmony Qt 应用程序的 DevEco 项目模板。这将用于在 HarmonyOS 设备上运行 Qt 应用程序。
获取最新模版: http://codereview.qtcompany.cn:29416/template/
将 DevEco 项目模板放入已知位置。我们将其命名为
转到文件夹 \entry 并创建一个文件夹 \ entry\libs\arm64-v8a
二、编译一个简单的 Qt 项目
我的calculator项目demo源码位于:D:\Qt\Qt5.14.2\Examples\Qt-5.14.2\script\calculator目录下。
直接使用Qt Creator可以打开工程。将这个calculator工程源码拷贝出来。
然后在 QtCreator 中,单击文件→打开文件或项目,然后转到 qt_creator_projects\calculator 并选择 calculator.pro。
在“配置项目”选项卡中,选择OHOS Clang 套件并单击“配置项目”按钮。
通过单击Build → Build Project “calculator”来触发编译,或者使用快捷键:Ctrl+B。项目应该可以顺利编译。

能够在 qt_creators_projects\build-calculator-OHOS_Clang-Debug 文件夹中 找到已编译的libcalculator.so文件。


三、在鸿蒙PC上运行 Qt for OpenHamony 应用程序
1. 将上一步中的 libcalculator.so 文件复制的到\entry\libs\arm64-v8a 文件夹中。
然后将所依赖的qt库从 \lib\ 复制到 \entry\libs\arm64-v8a\文件夹下。
例如,对于 libQt5Widgets.so 库,它的复制方法如下(Powershell):
Copy-Item "<qt-install-path>\lib\libQt5Widgets.so" -Destination "<deveco-project>\entry\libs\arm64-v8a\"
类似地,可以找到 OHOS qpa 插件的所有依赖项,以确保拥有所有必要的库。
2. 接下来需要修改 ets 中的初始加载
一旦复制了所有库,我们就可以修改 ets源代码。打开文件 <deveco-project>\entry\src\main\ets\common\QtAppConstants.ets。将 APP_LIBRARY_NAME 变量更改为我们要使用的库的名称(libcalculator.so):
3. 构建并运行应用程序
确保设备已连接。连接后,它应该在 DevEco Studio 中可见。
然后添加签名配置,打开 file–project structure–signing configs,勾选所有项,点击OK。(测试期间可以使用自动签名)

在 DevEco Studio 中选择设备后,可以直接构建并运行应用程序:

四、常见问题及解决(FAQ)
按照上面步骤一般很顺利。这里容易踩的一个坑:漏掉了libqohos.so这个库。则会运行起来直接崩溃。只记得添加QT库的依赖,很容易漏掉这个。我就踩了这个坑,导致运行就崩溃。
load libqohos.so failed, namespace=ndk no inherits, errno=2

这个库还比较大,有一百多兆大小。真希望它能打包到鸿蒙PC的系统里。否则,每个Qt的APP,都多了一百多兆谁能受得了。


最后,欢迎加入开源鸿蒙开发者社区交流:https://harmonypc.csdn.net/
附录:延伸阅读
以下链接供查阅嵌入式 UI 扩展与 HarmonyOS Ability 相关内容:
-
HarmonyOS 应用开发中 EmbeddedUIExtensionAbility:跨进程 UI 嵌入 - SegmentFault
-
https://wiki.qt.io/Qt5.12.12_Open_Source_Release_for_HarmonyOS_zh
官方文档请优先参考:HarmonyOS 开发者官网。
更多推荐




所有评论(0)