获取代码
创建任意空目录
进入该路径 比如该路径是 /root/hw/lite
执行:
cd /root/hw/lite
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
有的人也遇到”fatal: early EOF“错误,据说:
repo命令中的-b master改成-b ssh/master就可以正常下载了
搭建docker编译环境
使用镜像拉取方式:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
#启动:
docker run -dit --name ohos_co -v /root/hw/lite:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3 /bin/bash
#进入容器:
docker exec -ti ohos_co bash
首次进入容器后,
需要设置环境,依次执行:
python3 -m pip install --user build/lite
hb set
#输入 .
#选择 : ipcamera_hispark_taurus
更新llvm
最新代码需要 llvm 10.0
查看现有版本:
/home/tools/llvm/bin/clang --version
更新llvm步骤:
进入容器后执行:
cd /home/tools
wget https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-53907/linux/llvm.tar.gz
rm -r llvm
tar xzf llvm.tar.gz
编译
hb build -f #执行全量编译
hb build resmgr_lite
[OHOS ERROR] Component abc not found
查找 Component name 的方法:
Component 定义在 build/lite/components/ 下。
json文件中的 "component": "xxxx", xxxx 就是 name
错误解决:
ld.lld: error: /home/openharmony/out/hispark_taurus/ipcamera_hispark_taurus/obj/kernel/liteos_a/lib/libbsp_config.a:1: unknown directive: version
解决办法
更新二进制:
repo forall -c 'git lfs pull'
resmgr需要做的修改:
build/lite/components/global.json
- resmgr_lite 下面的 targets 中新增一行
"//base/global/resmgr_lite/frameworks/resmgr/test:unittest" - 把 frameworks/resmgr_lite 改成 frameworks/resmgr
foundation/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/BUILD.gn
foundation/ace/ace_engine_lite/frameworks/BUILD.gn
foundation/ace/ace_engine_lite/test/ace_test_config.gni
- 把 frameworks/resmgr_lite 改成 frameworks/resmgr