当前位置:首页 >时尚 >OpenHarmony—三方库适配指南 库适确认可用的库适版本

OpenHarmony—三方库适配指南 库适确认可用的库适版本

2024-06-30 15:02:44 [百科] 来源:避面尹邢网

OpenHarmony—三方库适配指南

作者:软通动力HOS 系统 OpenHarmony 本文以OpenHarmony-3.2-Beta4上适配modbus编译动态库为例。库适

​​想了解更多关于开源的库适内容,请访问:​​

OpenHarmony—三方库适配指南 库适确认可用的库适版本

​​51CTO 开源基础软件社区​​

OpenHarmony—三方库适配指南 库适确认可用的库适版本

​​https://ost.51cto.com​​

OpenHarmony—三方库适配指南 库适确认可用的库适版本

获取三方库

使用之前要做好代码溯源,库适确认可用的库适版本,开源许可和发布方式等。库适
通过正确的库适路径获取源码,可以是库适官网,或者指定托管的库适github或者gitee仓。
官网:https://libmodbus.org/github:https://github.com/stephane/libmodbus

移植三方库

三方库移植主要需要以下四步。库适

linux编译

编译三方库:

1、库适如果原三方库根目录存在CMakeLists.txt文件,库适新建build目录,库适通过cmake生成makeflie然后make。库适
2、库适如果根目录存在autogen.sh或configure.ac文件,库适使用Makefile.am构建,先执行./autogen.sh,再执行./configure命令生成Makefile,最后make和make install。

分析编译过程:

提取编译动态链接库和测试用的可执行文件所需要的源文件和头文件、编译添加的cflag和其他编译器参数,以及编译需要的链接库。
根据三方库的编译有两种情况:
1、在cmake生成makefile的过程中,分析build.make(生成目标的源文件)、depend.make(需要依赖的其他C源文件)、flags.make(cflags相关标记)、link.txt(链接库相关信息)等得出三方库对应的依赖关系。

2、使用Makefile.am构建的三方库,分析make.am内容,分析编译动态链接库和测试用的可执行文件需要的源文件,添加的编译器参数。链接库则通过分析makefile文件提取。

OpenHarmony适配

三方库一般放置在third_party目录下。

编译之前要增加模块配置,可以参考以下链接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build-module.md#新增并编译模块

部件名:modbus_part_name = “libmodbus”
子系统名:modbus_subsystem_name = “modbus”

新增子系统和部件名的方式:

1、在模块目录下配置BUILD.gn,根据模板类型选择对应的gn模板

third_party/libmodbus/BUILD.gn

2、在新建的子系统目录下每个部件对应的文件夹下创建bundle.json文件,定义部件信息。

third_party/libmodbus/bundle.json

3、修改build目录下的subsystem_config.json文件。

build\subsystem_config.json

三方库适配指南-开源基础软件社区

4、在vendor/{ product_company}/{ product-name}目录下的产品配置如product-name是hispark_taurus_standard时,在config.json中添加对应的部件,直接添加到原有部件后即可。

productdefine\common\inherit\rich.json

三方库适配指南-开源基础软件社区

这几步适配都需要根据三方库的引用方式来确定,并不需要每步都配置。如果当前模块是需要添加到已经有的部件或子系统,就只需要配置1和2步即可。

增量编译

编译动态链接库和可执行文件:
./build.sh --product-name rk3568 --ccache --build-target三方库名称 --target-cpu arm64
注:ohos到3.2版本之后,默认编译的都是32位系统,若要支持64位系统,在编译命令中添加–target-cpu arm64

例如:./build.sh --product-name rk3568 --ccache -T libmodbus
编译过程可能出现报错,根据报错信息调整gn。消除编译警告,例如:-Wimplicit-function-declaration改为-Wno-implicit-function-declaration加到gn的cflags信息里面。

编译成功生成的动态链接库和测试用的可执行文件在out目录下。

例如:out/ rk3568/modbus/libmodbus/libmodbus.z.so

三方库适配指南-开源基础软件社区

验证接口

将编译好的动态库和测试用例的可执行文件推送到开发板上。然后验证是否成功,保证测试用例都能在开发板上运行通过。
API接口是提供给北向调用的,实现指定的功能,使用者不需要了解其内部具体实现。
按照业务需要提供native和js接口。

引用方式

静态库

在部件中需要使用的gn中配置deps项,然后在代码中直接引用接口。

“//third_party/libmodbus:modbus”,

例如:

三方库适配指南-开源基础软件社区

动态库

先编译动态库,然后放在板子指定路径,然后通过dlopen导入动态库,最后在代码中通过句柄调引用接口。例如:

if(handle == nullptr){  
MMI_HILOGE("Open failed, so name:%{ public}s, msg:%{ public}s", pluginPath.data(), dlerror());
return false;
}

​​想了解更多关于开源的内容,请访问:​​

​​51CTO 开源基础软件社区​​

​​https://ost.51cto.com​​

责任编辑:jianghua 来源: 51CTO 开源基础软件社区 三方库适配鸿蒙

(责任编辑:探索)

    推荐文章
    • 非凡中国(08032.HK)因购股权获行使发行2000万股 每股发行价港币0.478元

      非凡中国(08032.HK)因购股权获行使发行2000万股 每股发行价港币0.478元非凡中国(08032.HK)发布公告,2021年3月15日-3月16日,根据公司于2010年6月29日采纳的购股权计划,非公司董事的购股权持有人因行使所获授予的购股权而获合计发行2000万股股份,每股 ...[详细]
    • 多地演出市场迎“开门红” 演出经济空间广阔

      多地演出市场迎“开门红” 演出经济空间广阔开年以来,全国多地演出市场迎来“开门红”。灯塔专业版App数据显示,截至1月16日,2024年全国演出销售总票房达1.93亿元,销售总票量达74万张,场次总数达2.4万场。日前,国家发展改革委修订发布 ...[详细]
    • 能解国际奥数竞赛题的AI系统问世

      能解国际奥数竞赛题的AI系统问世    科技日报北京1月17日电 记者张梦然)《自然》17日发表的一项计算科学研究,描述了一个能解国际数学奥林匹克竞赛级别几何题的人工智能AI)系统。其表现超过了之前最好的自动化定理证明系统。该研究证 ...[详细]
    • 兄弟姐妹多可能影响心理健康

      兄弟姐妹多可能影响心理健康本报讯 近日,一项针对美国和中国青少年的大型分析显示,拥有较多兄弟姐妹的青少年的心理健康状况比兄弟姐妹较少的青少年差。具体细节则取决于兄弟姐妹的年龄、年龄间隔等因素。“其他研究表明,有更多的兄弟姐妹会 ...[详细]
    • 10月安徽经济运行总体平稳 新兴动能不断增强

      10月安徽经济运行总体平稳 新兴动能不断增强安徽省统计局近日发布信息,今年10月份,我省整体经济继续保持恢复态势,主要宏观指标增速符合预期、快于全国,新兴动能不断增强。10月份,全省规模以上工业增加值同比增长3%,两年平均增长5.7%、比全国高 ...[详细]
    • 我的选择是报效国家

      我的选择是报效国家两位挂职干部来到北京,为朱高峰中)送捐赠证书。■本报记者 袁一雪近日,中国工程院两位在云南省会泽县和澜沧县挂职的干部来到北京,为中国工程院院士、中国工程院原常务副院长朱高峰送捐赠证书,以感谢他捐资助学 ...[详细]
    • 蹭“尔滨”热度失败 敷尔佳跌得距历史最低价仅差一分钱

      蹭“尔滨”热度失败 敷尔佳跌得距历史最低价仅差一分钱新快报讯 记者陆妍思报道 这个冬天,“尔滨”大火出圈,还引发了全国文旅大战,总部位于哈尔滨的医美公司敷尔佳自然没有错过这波热度,在哈尔滨冰雪大世界打造了两项主题冰雕。不过,这波“蹭热度”的操作,让品牌 ...[详细]
    • 南沙开发区为广东唯一入选园区

      南沙开发区为广东唯一入选园区全国首批产业园区减污降碳协同创新试点园区出炉新快报讯 记者毛毛雨 通讯员穗环宣报道 近日,生态环境部办公厅发布了第一批城市和产业园区减污降碳协同创新试点名单,包括全国21个城市和43个产业园区。广州南 ...[详细]
    • 中证金力挺民企债券融资专项计划 完善民营企业债券融资支持机制

      中证金力挺民企债券融资专项计划 完善民营企业债券融资支持机制民企债券融资迎来重要支持方案。证监会11日晚称,交易所债券市场推出民营企业债券融资专项支持计划,以稳定和促进民营企业债券融资。中证金正是大名鼎鼎的国家队,成立于2011年10月,2015年市场大幅波动 ...[详细]
    • 荣耀高管谈Magic6系列屏幕 在护眼实力方面的表现堪称满分

      荣耀高管谈Magic6系列屏幕 在护眼实力方面的表现堪称满分荣耀高管谈Magic6系列屏幕 在护眼实力方面的表现堪称满分【手机中国新闻】日常使用手机中,浏览短视频、观看电影、看小说是出现频率最高的使用场景,这时,手机的屏幕护眼实力直接决定了用户的观看体验。而随 ...[详细]
    热点阅读