Qt for OpenHarmony 编译鸿蒙调用的动态库
简介
Qt for Harmony 是跨平台开发框架 Qt 与华为 OpenHarmony 操作系统的深度集成方案,由 Qt Group 与华为联合推动。其核心目标是为开发者提供一套高效工具链,实现 “一次开发,多端部署”,加速 OpenHarmony 生态的应用迁移与创新。
本文主要实现在Windows端使用Harmony NDK在Qt Creator中编译生成Qt for OpenHarmony调用的动态库。
资源下载
在编译之前需要先下载相关的工具包然后进行环境配置。
1.Qt SDK
Qt Wiki官网文档中介绍可以获取Qt for OpenHarmony的源码,然后编译源码生成SDK,但是构建过程比较麻烦,感兴趣的可以自己去按照步骤操作一遍,地址在这里。
此外,openharmony-sig项目中提供了SDK包,供使用者下载,发布包中只提供了Windows平台下的SDK,直接下载现成的,可以省去编译步骤。目前发布的最新版是:Qt For OpenHarmony Alpha v6版本
我这边下载的是 alpha_v6 Qt5.15.12 OpenHamrony arm64-v8a二进制包
下载后可以看到,该版本名称是 Qt5.15.12_alpha_v6_arm64-v8a_openharmony_ndk_4.1.7.8_community_win,这是基于鸿蒙OS v4.1.7
版本,Qt版本是Qt5.15.12
解压待用。
2. DevEco Studio安装
DevEco Studio是华为推出的集成开发环境(IDE),专为HarmonyOS应用开发设计。支持HarmonyOS多设备、多语言开发,提供丰富的工具链和模板,帮助开发者高效构建全场景应用。
安装DevEco Studio主要是为了方便下载不同版本的鸿蒙SDK,下载DevEco Studio会默认自带一个sdk,需要选择一个自己想要的版本。
下载地址在这里
下载安装后,在文件->设置,打开设置页面:
然后点击OpenHarmony SDK页面
上一步中我们下载的Qt SDK对应的OpenHarmony 版本是4.1.7,所以这里我们需要下载对应的鸿蒙SDK版本,需要注意的是,选择OpenHarmony SDK保存的位置一定不能带有空格,否则后面的配置编译将会出问题。
3.Qt安装
这里建议安装Qt6以上的版本,我本机安装的是Qt6.8.2
,Qt需要在线下载安装,下载地址
下载后选择对应的Qt版本进行安装即可。安装Qt的时候注意要选择安装工具 mingw,编译的时候需要用到,这部分就不再赘述。
4.Cmake安装
在上一步安装Qt的时候可以同时选择安装工具Cmake,当然也可以自行下载Cmake进行安装, 安装完后记得设置环境变量。下载地址
环境配置
以上相关步骤准备好后,接下来是最重要的环境配置,在 Qt Creator 中为 OpenHarmony 创建开发工具包。
打开Qt Creator,点击 编辑->首选项
配置Qt版本
手动添加Qt版本,这里选择上一步中下载的Qt SDK的路径中的qmake
配置编译器
前面步骤中下载的鸿蒙SDK的路径中包含有C 和C++ 的编译器,点击“添加”,选择设置相应的路径,如下:
配置构建套件
切换到“构建套件页面”,点击添加,配置相应的选项,如下:
环境变量
转到编辑→首选项→环境→系统,然后单击环境部分中的Change…按钮,添加鸿蒙SDK的环境变量。
以上配置,踩过很多坑,按照Qt Wiki文章中的方法进行配置除了很多问题,可能是因为版本不同导致的吧,有些配置项跟Qt Wiki文章中介绍的不一样,不信邪的可以自行去操作一遍。
开始编译
准备好一切过后,接下来就可以正式开始编译了。
创建一个简单的Qt工程,选择编译方式选择qmake,然后选择我们配置的OHOS Clang套件进行编译:
编译完成便可得到一个.so动态库文件。
接下来就可以在鸿蒙工程中调用这个动态库文件使用了。
关于如何在DevEco Studio中创建鸿蒙项目并调用动态库的问题,后续再更新~
也可以直接参考Qt Wiki的文章介绍,继续进行。
参考文章
https://gitee.com/openharmony
https://wiki.qt.io/Qt_for_OpenHarmony/zh
https://gitee.com/openharmony-sig/qt/wikis/