当前位置: 首页 > news >正文

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/

http://www.lryc.cn/news/574075.html

相关文章:

  • MCU双分区方案,如何优雅地获知当前运行分区?
  • 开发上门按摩APP应具备哪些安全保障功能?
  • 实时预警!机场机坪井室无线智能液位监测系统助力安全降本
  • 【设计模式精讲 Day 12】代理模式(Proxy Pattern)
  • WebSocket 进阶全攻略:心跳机制、断线重连、socket.io、鉴权与WSS配置
  • LeetCode热题100—— 160. 相交链表
  • 拼多多API限流机制破解:分布式IP池搭建与流量伪装方案
  • Re:从零开始的地址映射基本分页存储管理方式(考研向)
  • 京东金融API支付链路剖析:白条分期接口的安全加固方案
  • ​​FFmpeg命令全解析:三步完成视频合并、精准裁剪​​、英伟达显卡加速
  • 飞往大厂梦之算法提升-7
  • vue | vue-macros 插件升级以及配置
  • OSC靶机练习 PG ZenPhoto
  • 华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫
  • redis如何使用IO多路复用
  • 深入理解PHP中的面向对象编程
  • 医疗B端系统布局创新:医护操作界面与患者数据的差异化呈现
  • 347. 前 K 个高频元素
  • 洛谷P1217 [USACO1.5] 回文质数 Prime Palindromes
  • Rust 切片类型(slice type)
  • 关于华为Pura70Pro+升级鸿蒙NEXT和回退
  • 第三章---需求分析
  • JavaScript 中 async/await 的工作原理
  • Chromium 136 编译指南 macOS篇:编译优化技巧(六)
  • 【C++】C++中的虚函数和多态的定义与使用
  • 微软ASR与开源模型分析
  • 黑马python(十五)
  • C语言数组介绍 -- 一维数组和二维数组的创建、初始化、下标、遍历、存储,C99 变长数组
  • 三、kubectl使用详解
  • 安卓9.0系统修改定制化____如何编辑和修改安卓手机默认按键配置文件 改变按键功能 操作篇 九