成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony—三方庫適配指南

系統(tǒng) OpenHarmony
本文以O(shè)penHarmony-3.2-Beta4上適配modbus編譯動(dòng)態(tài)庫為例。

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

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

獲取三方庫

使用之前要做好代碼溯源,確認(rèn)可用的版本,開源許可和發(fā)布方式等。
通過正確的路徑獲取源碼,可以是官網(wǎng),或者指定托管的github或者gitee倉。
官網(wǎng):https://libmodbus.org/github:https://github.com/stephane/libmodbus

移植三方庫

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

linux編譯

編譯三方庫:

1、如果原三方庫根目錄存在CMakeLists.txt文件,新建build目錄,通過cmake生成makeflie然后make。
2、如果根目錄存在autogen.sh或configure.ac文件,使用Makefile.am構(gòu)建,先執(zhí)行./autogen.sh,再執(zhí)行./configure命令生成Makefile,最后make和make install。

分析編譯過程:

提取編譯動(dòng)態(tài)鏈接庫和測試用的可執(zhí)行文件所需要的源文件和頭文件、編譯添加的cflag和其他編譯器參數(shù),以及編譯需要的鏈接庫。
根據(jù)三方庫的編譯有兩種情況:
1、在cmake生成makefile的過程中,分析build.make(生成目標(biāo)的源文件)、depend.make(需要依賴的其他C源文件)、flags.make(cflags相關(guān)標(biāo)記)、link.txt(鏈接庫相關(guān)信息)等得出三方庫對應(yīng)的依賴關(guān)系。

2、使用Makefile.am構(gòu)建的三方庫,分析make.am內(nèi)容,分析編譯動(dòng)態(tài)鏈接庫和測試用的可執(zhí)行文件需要的源文件,添加的編譯器參數(shù)。鏈接庫則通過分析makefile文件提取。

OpenHarmony適配

三方庫一般放置在third_party目錄下。

編譯之前要增加模塊配置,可以參考以下鏈接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build-module.md#新增并編譯模塊

部件名:modbus_part_name = “l(fā)ibmodbus”
子系統(tǒng)名:modbus_subsystem_name = “modbus”

新增子系統(tǒng)和部件名的方式:

1、在模塊目錄下配置BUILD.gn,根據(jù)模板類型選擇對應(yīng)的gn模板

third_party/libmodbus/BUILD.gn

2、在新建的子系統(tǒng)目錄下每個(gè)部件對應(yīng)的文件夾下創(chuàng)建bundle.json文件,定義部件信息。

third_party/libmodbus/bundle.json

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

build\subsystem_config.json

三方庫適配指南-開源基礎(chǔ)軟件社區(qū)

4、在vendor/{product_company}/{product-name}目錄下的產(chǎn)品配置如product-name是hispark_taurus_standard時(shí),在config.json中添加對應(yīng)的部件,直接添加到原有部件后即可。

productdefine\common\inherit\rich.json

三方庫適配指南-開源基礎(chǔ)軟件社區(qū)

這幾步適配都需要根據(jù)三方庫的引用方式來確定,并不需要每步都配置。如果當(dāng)前模塊是需要添加到已經(jīng)有的部件或子系統(tǒng),就只需要配置1和2步即可。

增量編譯

編譯動(dòng)態(tài)鏈接庫和可執(zhí)行文件:
./build.sh --product-name rk3568 --ccache --build-target三方庫名稱 --target-cpu arm64
注:ohos到3.2版本之后,默認(rèn)編譯的都是32位系統(tǒng),若要支持64位系統(tǒng),在編譯命令中添加–target-cpu arm64

例如:./build.sh --product-name rk3568 --ccache -T libmodbus
編譯過程可能出現(xiàn)報(bào)錯(cuò),根據(jù)報(bào)錯(cuò)信息調(diào)整gn。消除編譯警告,例如:-Wimplicit-function-declaration改為-Wno-implicit-function-declaration加到gn的cflags信息里面。

編譯成功生成的動(dòng)態(tài)鏈接庫和測試用的可執(zhí)行文件在out目錄下。

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

三方庫適配指南-開源基礎(chǔ)軟件社區(qū)

驗(yàn)證接口

將編譯好的動(dòng)態(tài)庫和測試用例的可執(zhí)行文件推送到開發(fā)板上。然后驗(yàn)證是否成功,保證測試用例都能在開發(fā)板上運(yùn)行通過。
API接口是提供給北向調(diào)用的,實(shí)現(xiàn)指定的功能,使用者不需要了解其內(nèi)部具體實(shí)現(xiàn)。
按照業(yè)務(wù)需要提供native和js接口。

引用方式

靜態(tài)庫

在部件中需要使用的gn中配置deps項(xiàng),然后在代碼中直接引用接口。

//third_party/libmodbus:modbus”,

例如:

三方庫適配指南-開源基礎(chǔ)軟件社區(qū)

動(dòng)態(tài)庫

先編譯動(dòng)態(tài)庫,然后放在板子指定路徑,然后通過dlopen導(dǎo)入動(dòng)態(tài)庫,最后在代碼中通過句柄調(diào)引用接口。例如:

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

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

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

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-02-08 15:46:50

設(shè)備移植第三方內(nèi)核適配

2022-11-16 14:05:06

Tesseract應(yīng)用調(diào)用

2022-10-11 15:04:28

NAPI開發(fā)鴻蒙

2024-07-30 09:35:00

2022-04-25 09:00:46

npm包管理器

2022-01-14 09:57:14

鴻蒙HarmonyOS應(yīng)用

2019-07-30 11:35:54

AndroidRetrofit

2023-03-22 09:09:21

鴻蒙Speexdsp

2021-03-01 09:48:24

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-24 15:22:47

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-04 13:06:38

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-01-13 09:40:31

鴻蒙HarmonyOS開發(fā)

2021-04-16 09:28:18

鴻蒙HarmonyOS應(yīng)用

2023-02-07 15:52:50

2022-11-21 16:15:41

ArkUI鴻蒙

2021-04-12 09:36:54

鴻蒙HarmonyOS應(yīng)用

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-01-12 12:04:40

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-01-20 09:54:56

鴻蒙HarmonyOS開發(fā)

2015-11-05 16:44:37

第三方登陸android源碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品福利一区二区三区 | 成年精品| 四虎在线视频 | 嫩草懂你的影院入口 | 国产小视频在线 | 在线观看日本网站 | 青青久草 | 亚洲国产精品一区二区www | 北条麻妃一区二区三区在线视频 | 91色视频在线 | 日韩在线一区二区 | 日韩一级一区 | 欧美一区二区免费 | 国产精品高潮呻吟久久av黑人 | 欧美日本久久 | 亚洲最大的黄色网址 | 看特级黄色片 | 亚洲国产精品久久久久 | 91精品国产综合久久福利软件 | 久久手机视频 | 亚洲成人精品 | 范冰冰一级做a爰片久久毛片 | 久久www免费视频 | 最新超碰 | 成人a网 | 精品福利一区二区三区 | 色婷婷狠狠 | 欧美伊人久久久久久久久影院 | 成人在线观看免费 | 国产精品一区二区三区四区五区 | 久久精彩视频 | 国产精品1区2区 | 射久久 | 国产福利资源 | 99久久成人 | 免费在线h视频 | 国产乱码一区 | 极品粉嫩国产48尤物在线播放 | 中文字幕韩在线第一页 | 天堂视频一区 | 黄网免费看 |