OpenHarmony(鸿蒙南向开发)——轻量和小型系统三方库移植指南(二)

鸿蒙轻量库移植指南

Makefile方式组织编译的库移植

以yxml库为例,其移植过程如下文所示。

源码获取

从仓库获取yxml源码,其目录结构如下表:

表1 源码目录结构

名称 描述
yxml/bench/ benchmark相关代码
yxml/test/ 测试输入输出文件,及测试脚本
yxml/Makefile 编译组织文件
yxml/.gitattributes -
yxml/.gitignore -
yxml/COPYING -
yxml/yxml.c -
yxml/yxml.c.in -
yxml/yxml-gen.pl -
yxml/yxml.h -
yxml/yxml.md -
yxml/yxml-states -

设置交叉编译

设置Makefile的交叉编译工具链,修改并编译该库,生成OpenHarmony平台的可执行文件,步骤如下:

  1. 设置工具链 将下列clang工具链配置替换掉yxml库根目录的Makefile(即表1中的文件)中的原有配置。

clang工具链配置:

    #设置交叉编译工具链,确保工具链所在路径已经添加到了PATH环境变量中
    CC:=clang
    AR:=llvm-ar
    #cflags中必须要添加--target及--sysroot选项
    CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g --target=arm-liteos -march=armv7-a -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 --sysroot=$(OHOS_SYSROOT_PATH)

原有配置:

    CC:=gcc
    AR:=ar
    CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g
  1. 执行编译 linux命令行中进入yxml的源文件目录(即图1所示目录),执行下列命令:
OpenHarmony 系统中安装第三方库,主要依赖于 **OH Package Manager (ohpm)** 工具。该工具支持安装、更新、卸载等操作,并通过 `oh_modules` 目录管理依赖库。 ### 安装步骤 1. **确认 ohpm 是否正常执行** 在目标目录下检查是否存在 `oh_modules` 文件夹,该文件夹用于存放所有已安装的三方库[^2]。可以使用以下命令进行验证: ```bash ls oh_modules ``` 如果看到目标三方库的目录,则表示安装成功。 2. **安装指定三方库** 使用 `ohpm install <package_name>` 命令安装特定的第三方库。例如: ```bash ohpm install can-utils ``` 这将自动下载并配置所需的依赖库到当前项目中[^4]。 3. **查看已安装的库信息** 执行以下命令查看指定库是否已经正确安装: ```bash ohpm ls <package_name> ``` 4. **更新已安装的三方库** 如果需要更新某个已安装的库,可使用: ```bash ohpm update <package_name> ``` 5. **卸载不再使用的三方库** 若需要移除某个直接依赖的库,使用以下命令: ```bash ohpm uninstall <package_name> ``` ### 依赖管理与配置 为了确保第三方库能够被正确编译使用,还需要将其组件添加进 OpenHarmony 的编译系统中。例如,在平台代码的 `config.json` 文件中添加如下内容以集成 `can-utils` 模块: ```json { "subsystem": "thirdparty", "components": [ { "component": "can-utils", "features": [] } ] } ``` 这种方式确保了第三方库能够在构建过程中被正确识别处理[^4]。 ### 第三方库的使用场景 某些第三方库可能涉及原生模块(如 `.so` 动态链接库),此时可以在 `TaskPool` 子线程中使用 `dlopen` 预加载这些库,并调用其函数。此外,还可以结合 `HiLog` 实现日志记录功能,增强调试能力[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值