本文介绍: 使用如下命令在编译时间隔1秒持续打印linux内存使用情况,当发生报错时内存仅剩110MB左右,基本可以判断是由于编译时系统内存吃紧导致的编译中断。当报错后查看内存,可用内存大概4GB甚至更少,使用htop命令查看linux进程发现仍有很多编译进程在跑,因此尝试重启wsl2释放内存后再编译。其他同事表示能编译通过,考虑到编译环境不同,采用VMWare虚拟机环境编译,仍97%报相同错误。报错后尝试多次增量编译,始终在54%作用报错,报错内容一致。虚拟机配置:8G内存,1T存储。清除编译环境后编译,仍报错。
1、背景说明
虚拟机:wsl 2.0 Ubuntu18.04
虚拟机配置:8G内存,1T存储
软件版本:安卓系统目前最高版本是Android S,也就是Android 12 beta版本源码,无任何修改
报错内容:编译至54%时,ninja编译中断,ninja: build stopped: subcommand failed.
2、尝试方案
报错后尝试多次增量编译,始终在54%作用报错,报错内容一致。
怀疑sync未拉完整,重新repo sync,提示success,再次编译仍报错。
其他同事表示能编译通过,考虑到编译环境不同,采用VMWare虚拟机环境编译,仍97%报相同错误。
尝试make clean,rm -rf out/
清除编译环境后编译,仍报错。
查阅资料提示由于编译时linux内存不足导致编译中断,wsl2 扩展VHD 至10G(方法如下),仍报相同错误。
添加wsl2配置文件
C:UsersuserName路径添加.wslconfig文件
.wslconfig
.wslconfig内容如上,内存配置为10GB,处理器8核即16线程
重启Ubuntu18.04,查看内存情况,已修改为10GB
3、问题分析及处理
使用如下命令在编译时间隔1秒持续打印linux内存使用情况,当发生报错时内存仅剩110MB左右,基本可以判断是由于编译时系统内存吃紧导致的编译中断
#或者使用命令
当报错后查看内存,可用内存大概4GB甚至更少,使用htop命令查看linux进程发现仍有很多编译进程在跑,因此尝试重启wsl2释放内存后再编译
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。