首页 > 其他分享 >鸿蒙里面编译时用到的hb是啥?

鸿蒙里面编译时用到的hb是啥?

时间:2024-12-10 23:27:54浏览次数:13  
标签:鸿蒙 生成 编译 文件夹 build ohos hb

hb是啥工具? 当时看鸿蒙的编译文档,里面直接出来了hb命令,把我都看傻了。后来才知道:

hb是HarmonyOS2.0里新增加的编译构建命令行工具。需要Python 3.7.4及以上版本的支持,建议安装3.8.x。源码在OpenHarmony\build\lite\hb这个目录下。

安装

安装方法,可以直接使用pip安装打包好的工具。

python3 -m pip install --user ohos-build
# 或者最简单是
pip install ohos-build

安装完成:Successfully installed kconfiglib-14.1.0 ohos-build-0.4.6 prompt-toolkit-1.0.14 

hb的使用

  • 设置编译环境‌:在使用hb进行编译之前,通常需要使用hb set命令来设置编译环境,包括指定代码根目录、要编译的产品等。
  • 执行编译‌:设置完编译环境后,可以使用hb build命令来执行编译操作。hb会根据配置文件(如ohos_config.jsonconfig.json)中的参数来生成输出文件夹,并执行gn和ninja命令来完成编译过程。
  • 其他功能‌:除了编译相关的功能外,hb还提供了其他模块,如hb env用于打印编译环境信息,hb clean用于清除编译生成的文件,hb tool提供了编译工具的相关功能。

hb的编译流程

  • 初始化‌:启动hb后,首先会进行各种初始化操作,包括导入必要的模块和库。
  • 读取配置文件‌:接着,hb会读取配置文件(如ohos_config.jsonconfig.json),以获取编译所需的参数和配置信息。
  • 生成输出文件夹‌:根据配置文件的参数,hb会生成输出文件夹,用于存放编译过程中生成的文件。
  • 执行gn和ninja命令‌:在输出文件夹生成后,hb会执行gn命令来生成Ninja文件,然后执行ninja命令来完成实际的编译工作。
  • 写入日志和生成文件‌:编译过程中,hb会将相关信息写入日志文件,并在输出文件夹中生成编译后的文件,如镜像文件等。

标签:鸿蒙,生成,编译,文件夹,build,ohos,hb
From: https://blog.csdn.net/skywalk8163/article/details/144386481

相关文章

  • 手把手教你华为鸿蒙开发之第十二节
    华为鸿蒙开发:深入掌握TypeScript接口、类和泛型引言在现代软件开发中,TypeScript提供的接口(Interfaces)、类(Classes)和泛型(Generics)是构建可维护和可扩展代码的重要工具。华为鸿蒙操作系统的开发环境DevEcoStudio支持TypeScript,使得开发者可以利用这些特性来构建类型安全的......
  • 手把手教你华为鸿蒙开发之第十节
    华为鸿蒙开发:深入探索Tabs组件的定制与应用引言在移动应用设计中,标签页(Tabs)是用户切换不同内容区块的重要界面元素。华为鸿蒙操作系统提供的Tabs组件支持开发者创建高度定制化的标签页界面。本文将通过DevEcoStudio详细介绍Tabs组件的使用,包括基本设置、动态生成标签页、以及......
  • 快速编译并执行csapp程序
    现在要实现通过cfile.c来执行两个过程:#1.根据c文件名生成对应的输出文件gcc-I/home/crx/study/csapp/code/include/home/crx/study/csapp/code/src/csapp.cfile.c-ofile#2.执行输出文件./file通过chatgpt的方案是,使用脚本来根据输入文件名自动生成输出文件名。......
  • Android 13 源码编译
    前言全局说明一、说明1.1环境:Ubuntu18.04.6LTS(Linuxqt-vm5.4.0-150-generic#167~18.04.1-UbuntuSMPWedMay2400:51:42UTC2023x86_64x86_64x86_64GNU/Linux)1.2清华源AOSP清华源:https://mirrors.tuna.tsinghua.edu.cn/AOSP帮助:https://mirrors.tuna.tsi......
  • 鸿蒙 Next 中 Provide 和 Consume 的用法总结
    一、概述在鸿蒙Next中,@Provide和@Consume装饰器用于在祖先组件与后代组件之间实现双向数据同步,适用于状态数据在多个层级之间传递的场景,摆脱了父子组件间命名参数传递机制的束缚。从APIversion9开始,这两个装饰器支持在ArkTS卡片中使用,从APIversion11开始,支持在元服务中使用。......
  • 张高兴的 Raspberry Pi AI 开发指南:(三)将自定义模型编译为 Hailo NPU 的 .hef 模型
    目录Python环境配置转换量化编译参考在上一篇博客中,探讨了如何使用Python和hailo_model_zoo中预编译的模型来实现目标检测。本篇博客将深入介绍如何将用户自定义训练的模型转换并优化为能够在HailoNPU上高效运行的.hef模型。Python环境配置为了将自定义模型编译为.......
  • OSG开发笔记(三十八):osg3.0.0基于windows平台msvc2017x64编译器编译并移植Demo
    前言  本篇编译osg3.3.0的msvc2017x64版本,验证书中的从相机demo。 OSG编译步骤一:下载解压  下载版本,由于官方的其他路径没有直接给出3.0.0,需要自己切换分支,代码地址:https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.6.4  然后:  ......
  • 关于C3 编译
    在服务端编译的时候 需要配合下载MySql 在网站上下载对应的版本 未编译的版本 已编译版本都下载  下载地址  MySQL::DownloadMySQLCommunityServer(ArchivedVersions)  工程设置数据库的附加包含目录 库目录 编译通过后  数据库的安装  按步......
  • 鸿蒙 Next 中 Prop 的用法详解
    一、@Prop概述在鸿蒙Next中,@Prop装饰器用于在父子组件之间建立单向的数据同步关系。这意味着数据从父组件流向子组件,子组件对@Prop装饰变量的修改不会同步回父组件。从APIversion9开始,该装饰器支持在ArkTS卡片中使用,从APIversion11开始,支持在元服务中使用。(一)同步机制父组......
  • go编译可以指定os和arch
    是的,Go编译器支持通过环境变量来指定目标操作系统(OS)和架构(Arch)。这允许你为不同的平台交叉编译Go程序。你可以使用GOOS和GOARCH环境变量来指定目标系统。例如,如果你想为Linux系统上的ARM64架构编译程序,你可以设置环境变量如下:shGOOS=linuxGOARCH=arm64gobuild......