服务器之家:专注于服务器技术及软件下载分享
分类导航

服务器资讯|IT/互联网|云计算|区块链|软件资讯|操作系统|手机数码|百科知识|免费资源|头条新闻|

服务器之家 - 新闻资讯 - 操作系统 - OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发

2023-07-17 17:08未知服务器之家 操作系统

想了解更多关于开源的内容,请访问: 本站开源基础软件社区 前言 本文介绍了编译构建系统的使用,新增组件的步骤,组件模块开发的方法。 新增组件 准备好开发套件。 【OpenHarmony编译构建系统】介绍新增组件以及组件模块开

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发

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

本站开源基础软件社区

前言

本文介绍了编译构建系统的使用,新增组件的步骤,组件模块开发的方法。

新增组件

准备好开发套件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

一、编写组件源码

在applications\sample目录下新建component_demo目录。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

之后在component_demo目录下新建demo.c文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

开始编写… 保存文件。

ps: 源码各部分组成简介可以看我的另一篇文章/posts/25049。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

二、编写编译脚本

在component_demo目录下新建BUILD.gn文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

开始编写编译脚本… 保存文件。

  • ps1: static_library是静态库 testdemo是库名称,最终会被编译成libtestdemo.a。
  • ps2: sources 指定要编译的demo.c源文件。
  • ps3: include_dirs是指定的include目录 "//"表示源码根目录,后面是目录名称。
  • ps4: 注意逗号。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

三、单独编译目标

打开虚拟机,找到1.1.3源码根目录,选择在终端打开。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

查看具体用法。

hb build -h

ps:语法是 hb build -T 路径 : 目标。

hb build -f -T //applications/sample/component_demo:testdemo

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

四、添加组件定义

回到VSCode 根据路径 build\lite\components\applications.json 打开applications.json。

定义组件,保存文件。

ps1: targets是编译入口 是源码根目录下的applications/sample/component_demo:testdemo。

ps2: adapted_kernel是适配内核。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

五、将组件配置到产品

根据路径 vendor\hisilicon\hispark_pegasus\config.json 打开config.json 找到 “subsystem”: “applications” 进行配置,保存文件。

  • ps: 注意逗号。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

单独编译组件。

hb build -f testdemo

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

  • ps:在轻量系统中,单独编译的目标或组件,不能独立运行,适合发现编译错误。

烧录运行的话,需要进行固件的全量编译。

hb build -f

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

六、烧录固件

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

七、运行

烧录完成之后,打开MobaXterm,连接串口,重启开发板。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

组件模块开发

一、建立根目录

根据路径 applications\sample\wifi-iot\app 找到app目录 新建gn_practice目录。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

二、建立目录树

  • 应用程序模块: application
  • 驱动模块: driver
  • 库模块: library

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

三、编写各模块源码

  • ps:每写完一个文件记得保存。

先是application模块,建立一个子模块的c文件和头文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

子模块的c文件include对应的头文件。

  • ps: 爆红只需要点击黄色小灯泡,添加到includePath即可 不会添加的可以看我的上一篇文章。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

新建一个主程序文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

编写主程序文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

接下来是driver模块和library模块。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

在主程序文件include两个模块的头文件。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

四、编写各模块脚本

先编写application模块脚本。

  • ps: cflags是编译参数 这三种情况在默认编译方式下是不允许的,会引发编译错误,设置这三个参数后,编译系统会把它们不当作错误来处理。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

接下来编写driver和library模块。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

五、定位组件编译入口

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

applications\sample\wifi-iot\app\BUILD.gn。

修改三个模块的编译。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

六、编译烧录运行

设置:

hb set

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

编译:

hb build -f

编译成功。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

烧录成功。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

运行成功。

OpenHarmony编译构建系统)—介绍新增组件以及组件模块开发【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发-开源基础软件社区

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

本站开源基础软件社区

延伸 · 阅读

精彩推荐