1 Star 0 Fork 5.1K

youguilin / docs

forked from OpenHarmony / docs 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
编译构建概述-0.md 2.32 KB
一键复制 编辑 原始数据 按行查看 历史
NEEN 提交于 2021-06-02 22:39 . !333 update docs bugs

编译构建概述

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

  • 构建不同芯片平台的产品。如:Hi3516DV300平台。

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

基本概念

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

  • 平台

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

  • 子系统

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

  • 组件

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

  • gn

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

  • ninja

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

运作机制

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

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

约束与限制

  • 需按照源码获取指导下载全量源码(采用方式三获取)。

  • 编译环境需要Ubuntu18.04及以上版本。

  • 安装编译所需的程序包。

    安装命令:

    sudo apt-get install binutils git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4
1
https://gitee.com/yougl/docs.git
git@gitee.com:yougl/docs.git
yougl
docs
docs
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891