编译OpenHarmony主要可以通过命令行工具和Docker环境两种方式进行。
编译流程:OpenHarmony的编译主要包含四个阶段:
- Preloader:全盘扫描编译配置文件。
- Loader:加载并验证配置,处理依赖关系。
- GN:根据参数生成Ninja构建文件。
- Ninja:执行实际的编译任务。
准备工作与环境搭建
开始编译前,你需要准备好基础环境并获取源代码。
- 基础环境要求:编译环境推荐使用 Ubuntu 18.04 或更高版本。需要安装必要的编译工具,例如 Git、Python3.8/3.9、gn、ninja 等。你可以通过以下命令安装(适用于Ubuntu 20.04):
sudo apt-get update -y
sudo apt-get install -y git git-lfs python3.9 python3-pip gn ninja-build
- 获取源代码:提议通过 repo工具获取OpenHarmony源码。例如,获取指定发布版本(如5.0.2)的代码:
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-5.0.2-Release --no-repo-verify
repo sync -c
- 完成后,运行 bash build/prebuilts_download.sh以下载必要的预编译工具链。
使用 hb 工具编译
hb是OpenHarmony较新版本推荐的编译工具,尤其适合小型和轻量系统。
安装 hb 工具:在源码根目录下执行以下命令安装(适用于OH 4.x/5.x):
- python3 -m pip install –user build/hb
- 安装后,提议将 ~/.local/bin添加到你的 PATH环境变量中。
配置和编译:
- 在源码根目录执行 hb set,然后通过方向键在交互界面中选择你的产品(例如 mini系统中的 wifiiot_hispark_pegasus)。
- 执行 hb build开始编译。可以添加 -ccache参数加速后续编译。
使用 build.sh 脚本编译
build.sh脚本是另一种常用的编译入口,用法更为直接。
- 标准系统编译:对于标准系统(如RK3568开发板),使用如下命令:./build.sh –product-name rk3568 –ccache
- 小型/轻量系统编译:同样可以使用 build.sh。例如,编译轻量系统下的 wifiiot_hispark_pegasus:./build.sh –product-name wifiiot_hispark_pegasus –ccache –no-prebuilt-sdk
使用 Docker 编译
通过Docker可以避免环境污染,保证环境一致性。
- 获取Docker镜像:可以从官方仓库拉取编译镜像:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
- 运行容器并编译:将源码目录挂载到容器中并执行编译命令:
docker run -it --name ohos_build -v $(pwd):/home/openharmony openharmony-docker/openharmony-docker:1.0.0
# 在容器内
cd /home/openharmony
./build.sh --product-name rk3568 --ccache

© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...