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

【鸿蒙三方库编译】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中,通过该方式使用命令行

http://www.cnnetsun.cn/news/136662.html

相关文章:

  • 2025年度GEO服务商权威甄选指南:技术深度与商业价值的双重考量
  • 收藏备用!Java程序员转AI大模型:从技术沉淀到AI爆发的进阶之路
  • Python 爬虫实战:Session 会话维持爬取需登录内容
  • 基于移相全桥变换器的电池充电仿真模型,采用电压电流双闭环PI控制。 电池先经历CC模式而后进入...
  • 基于COMSOL模拟的水力压裂技术研究:固体力学与达西定理的应用
  • Redis 性能调优(二)
  • Doris 性能调优实践指南(可直接落地)
  • presum|二分try+滑窗cnt
  • Web自动化测试:Unittest单元测试框架
  • Apache2最佳实践
  • 实力派,也可以是偶像派
  • 基于单片机的多功能万年历
  • AI搜索时代:技术演进、产业分化与深度变革
  • SGMICRO圣邦微 SGM2019-2.5YC5G/TR SC70-5 线性稳压器(LDO)
  • 一文搞懂 低功耗蓝牙BLE 中的 ATT、GATT、MTU 与 20 字节限制
  • 别让“大锅饭”逼走你的Top Sales:揭秘薪酬误差的副作用
  • 27827828
  • 12.17 vue递归组件
  • QtScrcpy高刷投屏优化指南:告别卡顿,享受流畅体验
  • 终极移动端Windows应用运行指南:从零到流畅体验
  • 大学里的网络安全专业为什么没多少人就读?
  • 信息安全和网络空间安全这2个专业怎么选?老网安告诉你答案!
  • 英语发音MP3音频库:119,376个单词标准发音完整解决方案
  • 瞄准2026:AI安全、数据隐私与云原生——网络安全趋势预测与挑战分析
  • 重磅收藏!Java程序员转AI大模型:从代码高手到AI架构师的进阶指南
  • 2026网络安全进阶路线:盘点撬动高薪的四大关键证书
  • LangGraph实战教程:构建智能旅游规划助手,深入理解AI工作流架构【值得收藏】
  • 淘宝直播弹幕采集完整指南:5分钟快速上手数据分析
  • 文本驱动可视化:5分钟掌握专业级图表制作
  • Clipper2多边形处理技术深度解析与实战应用