# 编译构建子系统<a name="ZH-CN_TOPIC_0000001162500073"></a>

-   [基本概念](#section175012297491)
-   [运作机制](#section193961322175011)
-   [轻量和小型系统](#section119041639115811)
-   [标准系统](#section8750514195912)
-   [相关仓](#section44651652878)

编译构建子系统提供了一个基于gn和ninja的编译构建框架。主要提供以下功能：

-   构建不同芯片平台的产品。如：Hi3516DV300平台。

-   根据产品配置可以按照组件组装打包产品需要的能力。

## 基本概念<a name="section175012297491"></a>

在了解编译构建子系统的能力前，应了解如下基本概念：

-   平台

    开发板和内核的组合，不同平台支持的子系统和组件不同。

-   子系统

    OpenHarmony整体遵从分层设计，从下向上依次为：内核层、系统服务层、框架层和应用层。系统功能按照“系统 \> 子系统 \> 组件”逐级展开，在多设备部署场景下，支持根据实际需求裁剪某些非必要的子系统或组件。子系统是一个逻辑概念，它具体由对应的组件构成。

-   组件

    对子系统的进一步拆分，可复用的软件单元，它包含源码、配置文件、资源文件和编译脚本；能独立构建，以二进制方式集成，具备独立验证能力的二进制单元。

-   gn

    Generate ninja的缩写，用于产生ninja文件。

-   ninja

    ninja是一个专注于速度的小型构建系统。


## 运作机制<a name="section193961322175011"></a>

OpenHarmony侧的编译构建流程主要包括编译命令行解析，调用gn，执行ninja：

-   命令行解析：解析待编译的产品名称，加载相关配置。
-   调用gn: 根据命令行解析的产品名称和编译类型，配置编译工具链和全局的编译选项。
-   执行ninja：启动编译并生成对应的产品版本。

## 轻量和小型系统<a name="section119041639115811"></a>

轻量和小型系统的编译构建介绍请见[build\_lite](https://gitee.com/openharmony/build_lite)的Readme文档。

## 标准系统<a name="section8750514195912"></a>

标准系统的编译构建相关介绍请见build仓的Readme文档。

## 相关仓<a name="section44651652878"></a>

**编译构建子系统**

[build\_lite](https://gitee.com/openharmony/build_lite)

build

