【鸿蒙OH 5.0】下载、编译OpenHarmony代码

📝往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)

🚩 鸿蒙(HarmonyOS)北向开发知识点记录~

🚩 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~

🚩 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?

🚩 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~

🚩 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

🚩 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

🚩 记录一场鸿蒙开发岗位面试经历~

📃 持续更新中……


前言

终于等到下载代码的时刻了,业内不叫下载代码叫“拉代码”,上传代码叫“上库”,编译叫构建。

一、 安装路线

  • 1.避坑指南
  • 2.代码拉取及编译
    • 2.1 Hi3518 编译(属于 L1)
    • 2.2 3516-linux 编译
    • 2.3 Hi3516 编译(属于 L2)
    • 2.4 RK3568 编译
  • 3.系统全量编译
  • 4.组件编译举例

二、避坑指南

1. repo sync -c -j4,同步代码,数字是否越大越好?

要根据电脑配置选取合适的核数。数字 4 是指拉去代码的核数,数字越大拉取速度越快,太大会导致命中率下降,因而拉取代码失败,选择太小,拉取代码速度缓慢。

2. 系统编译 32 位,用例、组件能否编译成 64 位?

  • --target-cpu arm64, 表明为编译 64 位系统,没有则默认 32 位系统;
  • 系统编译完成后,测试用例以及个别组件编译也必须和系统位数一致,否则会导致崩溃 Crash;

三、代码拉取及编译

1. 代码拉取官方手册

参考网址:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md

2. master 主干代码拉取

拉取代码之前要建立一个代码目录,例如: master_code

mkdir master_code
cd master_code

在新目录下拉取代码,如下指令逐条执行

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo start master --all
repo forall -c 'git lfs pull'
bash build/prebuilts_download.sh

3.修改 dash 为 bash

终端输入命令: ls -l /bin/sh
显示结果是: /bin/sh -> dash

输入: sudo dpkg-reconfigure dash
出现选择,选择否回车,重新输入:ls -l /bin/sh

wyyname@n019949:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 6月  16  2023 /bin/sh -> /bin/bash

四、系统全量编译

1. Hi3518 编译(属于 L1)

输入’hb set’, 上下移动箭头选择产品型号,回车选择对应开发板,例如选择 ipcamera_hispart_aries

image.png

执行 hb build 构建

编译完成,如下图:

2. 3516-linux 编译

输入’hb set’,选择 ipcamera_hispark_taurus_linux
使用 hb build -f 全量构建
3516/3518/3861 是同类型,如图:

编译成功

3. Hi3516 编译(属于 L2)

由于 L2 目前接触只涉及 3516
在根目录输入:./build.sh --product-name Hi3516DV300

Hi3516DV300 编译成功

4. RK3568 编译

虚拟机 13GB 内存、12 个处理器编译一套全量代码在 2024 年 1 月 1 日前至少需要 4 个小时。

1. 32 位系统编译(默认)

./build.sh --product-name rk3568 --ccache

2. 64 位系统编译

./build.sh --product-name rk3568 --target-cpu arm64 --ccache

3. 编译成功

五、组件编译举例

1. 单独编译内核

cd out/kernel/src_tmp/linux-5.10
export PRODUCT_PATH=vendor/hihope/rk3568
./make-ohos.sh TB-RK3568X0

2. Audio so 或者 bin 单独编译

./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/hal/hdi_passthrough:hdi_audio
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_capture --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_event --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_render --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:idl_render
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:idl_capture

3. audio 用例全编译

./build.sh --product-name rk3568 --build-target audio_test_entry  --target-cpu arm64

4. 单编 arkui

./build.sh --product-name rk3568 --ccache --build-target libace_compatible

5. 单编 multimodalinput

./build.sh --product-name rk3568 --ccache --build-target libmmi-server
./build.sh --product-name rk3568 --ccache --build-target libmmi-util
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值