赞
踩
OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统,该系统提供以下基本功能:
编译子系统通过配置来实现编译和打包,该子系统主要包括:模块、部件、子系统、产品。
编译子系统的各部分关系,主要体现为:
编译构建子系统架构
目录结构:
SHELL build ├── build_scripts # 编译相关的python脚本 ├── common ├── config # 编译相关的配置项 ├── core │ ├── build_scripts │ └── gn # 编译入口BUILD.gn配置 ├── docs ├── gn_helpers.py ├── lite # hb和preloader入口 ├── loader ├── misc ├── ohos ├── ohos.gni # 汇总了常用的gni文件,方便各个模块一次性import ├── ohos_system.prop ├── ohos_var.gni ├── prebuilts_download_config.json ├── prebuilts_download.py ├── prebuilts_download.sh ├── print_python_deps.py ├── __pycache__ ├── scripts ├── subsystem_config_example.json ├── subsystem_config.json ├── templates # c/c++编译模板定义 ├── test.gni ├── toolchain # 编译工具链配置 ├── tools # 常用工具 ├── version.gni └── zip.py
编译构建可以编译产品、部件和模块,但是不能编译子系统。编译构建流程如下图所示,主要分设置和编译两步:
hb set: 设置要编译的产品。
hb build: 编译产品、开发板或者部件。编译主要过程如下:
主要是安装编译所需的软件包,使用以下脚本一键安装就行:
SH
./build/build_scripts/env_setup.sh
如果出现hb安装不成功,可以重装hb,相关命令:
SH
#安装
python3 -m pip install --user build/hb
#将路径 export PATH=~/.local/bin:$PATH 更新到环境变量 ~/.bashrc
#卸载
python3 -m pip uninstall ohos-build
在源码根目录下执行prebuilts脚本进行预编译,安装编译器及二进制工具。
SHELL
bash build/prebuilts_download.sh
使用命令行方式或hb方式执行编译命令
全量版本的编译
Release版本 :
SHELL
./build.sh --product-name {product_name}
Debug版本 :
SHELL
./build.sh --product-name {product_name} --gn-args is_debug=true --build-target {target_name}
hb方式
设置要编译的产品
查看当前设置信息
编译产品、部件、模块或芯片解决方案。
清除 out 目录对应产品的编译产物,仅保留args.gn、build.log。清除指定路径可输入路径参数:hb clean out/board/product,默认将清除当前hb set的产品对应 out 路径。
注:更多选项可使用-h查看
更多鸿蒙实战技术学习可以前往主页,鸿蒙的学习路线思维图分享(略缩图)
高清完整版,前往主页或者四我保存,附带文档
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。