news 2026/1/15 7:59:40

【鸿蒙三方库编译】lycium_plusplus(lycium++)高效完成鸿蒙C/C++编译

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【鸿蒙三方库编译】lycium_plusplus(lycium++)高效完成鸿蒙C/C++编译

lycium_plusplus介绍

项目地址

lycium++ 是基于openharmony cpp 编译框架lycium的增强

主要包含以下几个目标:

  1. 针对目标产物,构建依赖关系树,一键构建
  2. 对于三方库的HPKBUILD,提供多版本构建能力,代码仓脱离本仓独立发布,可通过三方件源码仓获取编译
  3. 提供hnp构建产物的生成,支持Harmony系统使用
    关于lycium编译框架,请访问OpenHarmony-SIG/tpc_c_cplusplus了解更多

如何使用

原生构建方式

本项目遵循lycium编译框架,您可以基于lycium基础进行构建,如

cd lyium ./build.sh unzip

通过原生方式,lycium编译框架会基于community/thirdparty 中已存在的三方库进行编译构建

增强型构建方式

框架示意

外部适配仓参与构建

本项目新增目录outerrepo用于临时存放外部仓,外部仓信息存放在outerrepo/module.json

该文件中包含的关键要素如下:

"module" : [ { "name" : "tree", "branch" : "ohos_2.2.1", "version" : "2.2.1", "type" : "git", "url" : "https://gitcode.com/OpenHarmonyPCDeveloper/ohos_tree.git" } ]
  1. name为模块名称,如上述示例中的tree
  2. url为适配仓代码地址,以及适配仓所对应的原生代码tree的版本信息version
  3. branch为适配仓为该对应关系中适配仓的对应分支信息
  4. type为适配仓托管类型的下载方式,如上述中,ohos_tree适配仓的下载方式为git(其他获取源码方式待扩展)
外部ports仓规范

外部代码仓适配遵循lycium原生框架所需要的内容,仅作为独立仓库部署,例如tree的适配,额外可以增加打包hnp时的配置文件hnp.json

├── 0001-ports-for-ohos.patch ├── HPKBUILD └── hnp.json

hnp.json示例如下:

{ "type":"hnp-config", "name":"tree", "version":"2.2.1", "install":{} }

此外,在HPKBUILD中,按照需求可以增加archive阶段

archive() { mkdir -p ${LYCIUM_ROOT}/output/$ARCH pushd $LYCIUM_ROOT/usr/$pkgname/$ARCH tar -zvcf ${LYCIUM_ROOT}/output/$ARCH/${pkgname}_${pkgver}.tar.gz * popd cp hnp.json $LYCIUM_ROOT/usr/$pkgname/$ARCH ${HNP_TOOL} pack -i ${LYCIUM_ROOT}/usr/$pkgname/$ARCH -o ${LYCIUM_ROOT}/output/$ARCH/ }

该阶段将会在package()阶段后被调用,该阶段需要按照${LYCIUM_ROOT}/output/$ARCH路径进行输出

编译

适配完成后,可以按照原生编译的方式执行,仍以tree举例:

cd lyium ./build.sh tree

产物获取

获取编译产物

  1. 可在lycium/usr/tree/<ARCH>下获取对应架构下的二进制产物
  2. 可在lycium/output/<ARCH>/下获取对应架构下的归档产物
贡献

生成hnp的命令行产物,可以贡献到lycium_plusplus中,通过提交module.json即可简单完成贡献

您的hnp产物,也可以贡献到DevBox中,通过该方式使用命令行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 20:09:37

Python 爬虫实战:爬虫代理 IP 池搭建与自动切换

摘要 本文聚焦爬虫代理 IP 池的核心搭建与自动切换技术&#xff0c;针对反爬机制中 IP 封禁的核心痛点&#xff0c;系统讲解代理 IP 池的架构设计、数据源对接、有效性检测、自动切换及动态维护全流程。实战验证基于IP 检测测试页&#xff08;可直接点击验证 IP 有效性&#x…

作者头像 李华
网站建设 2026/1/12 19:38:30

JAVA面相对象编程—抽象类、接口

#JAVA笔记#抽象类定义抽象类与普通类基本类似&#xff0c;唯一的区别在于使用abstract关键字修饰&#xff0c;且类中有未实现&#xff08;没有方法体&#xff09;的抽象方法&#xff08;abstract修饰&#xff09;。抽象方法必须位于抽象类中&#xff0c;抽象方法只能访问抽象成…

作者头像 李华
网站建设 2026/1/12 19:38:27

2026最新网络安全小白自学之路,别到处拜师了!!

较为完整的学习路线&#xff1a; 这个路线是我和一些已入职大佬来规划整理&#xff0c;也加上了小提示&#xff0c;我也希望你们能看看上面我的心得&#xff0c;都会有所帮助。 第一阶段&#xff0c;初入门学网络基础tip&#xff1a;这部分没有什么逻辑可以说的&#xff0c;半个…

作者头像 李华
网站建设 2026/1/12 23:21:39

加入2025护网,日薪最低1500,能力越强薪资越高!

加入2025护网&#xff0c;日薪最低1500&#xff0c;能力越强薪资越高&#xff01; 什么是护网行动 ** ** 1.护网行动 护网&#xff0c;也称网络保护&#xff0c;是指网络安全人员对企业或组织的网络进行检查、维护和保护&#xff0c;以防止网络受到黑客攻击、病毒、木马或其…

作者头像 李华
网站建设 2026/1/13 4:36:43

Selenium切换窗口、框架和弹出框window、ifame、alert

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、切换窗口#获取打开的多个窗口句柄 windows driver.window_handles #切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) #最大化浏览器 driv…

作者头像 李华
网站建设 2026/1/12 23:21:37

一个人,一家独角兽公司:代码的终结与创造者的崛起

刚看完 Silicon Valley Girl 采访 Replit CEO Amjad Masad 的视频&#xff0c;后劲很大。Amjad 在视频里抛出了一个非常炸裂的预测&#xff1a;“我们很快就会看到第一家由单人创办并运营的 10 亿美元估值&#xff08;Unicorn&#xff09;公司。”注意&#xff0c;是一人公司&a…

作者头像 李华