问题描述
根据操作手册正常拉取代码,然后编译OpenHarmony5.0.0版本rk3568项目
编译命令
./build.sh --product-name rk3568 --ccache
出现如下报错
然后真正开始出错的位置是下面这句log
FAILED: ../kernel/src_tmp/linux-5.10/boot_linux ../kernel/checkpoint/compile_check
原因分析:
从上面的错误位置判断,跟linux内核编译是有一定关系的。但是这个版本是直接下拉下来的,每日构建可以去看,都在正常编译的。所以怀疑跟编译环境有关。
在 [Bug]: OpenHarmony master分支编译报错
有开发者提出电脑内存的问题,因此我特意观察了下编译的时候内存的变化。
确实偶尔存在内存占用较大的情况,因此8GB或者16GB都可能会存在一定的异常。因此我将内存扩到了32GB。OpenHarmony3.2运行是没问题的,OpenHarmony5.0可能由于添加了其他应用,导致内存占用率上升了。
然后还有一点是在OpenHarmony开发者论坛提问后有开发者提出强制同步的建议,看起来是有效果的。
OpenHarmony5.0 release版本编译rk3568不过
试试在源码目录用以下命令强制同步一下,但会清除所有的更改(建议备份一下改动的内容)
repo forall -c 'git reset --hard'
repo sync --force-sync然后再使用
./build.sh -p rk3568
编译就通过了,我是这么做的
比重新建仓再拉源码要方便
最后我是镜像直接替换成了OpenHarmony-5.0.1-release版本,最后终于编译成功了。
解决方案:
综合以上几点修改,我总结一下
1、镜像替换成OpenHarmony5.0.1-release版本。
2、正常编译看是否OK。
3、如果失败,检查电脑内存情况,16GB看是否满负荷运行,扩大内存容量。
4、在未修改代码的情况下执行如下命令,然后删除out目录后重新进行编译./build.sh -p rk3568
repo forall -c 'git reset --hard'repo sync --force-sync
如果以上操作后还是没解决,请在评论区留言。