make过程中遇到"fatal error … terminated program cc1plus"

原因是内存不够,可以通过以下指令查看内存

free -m

在这里插入图片描述
笔者目前的:
Swap区内存大小:1425M
虚拟机内存大小:4493M
增加内存的方法有两种,增加虚拟机内存或者Swap区内存都可以

方法一:增加虚拟机内存

这种方法比较简单粗暴,但是缺点是受限于电脑内存,并且通常不能给的太大【给电脑内存80%左右就好】
关机后,在VMWare的“虚拟机配置”处进行设置
在这里插入图片描述

在这里插入图片描述

方法二:增加Swap区内存

如前文所述,可以通过以下指令查看现有内存:

free -m

参考文章:C++: fatal error: Killed signal terminated program cc1plus的问题解决
尝试增加swap区

有一个小技巧,在make时遇到许多Warning,非常碍眼,可以这样:

make -j4 2>&1 | grep -iE 'error|%'  # 仅输出报错和百分号(进度)

按照原博主的方法,会说“打开’/swapfile’ 失败: 文本文件忙
因此稍加修改:

sudo swapoff /swapfile 
# 关掉交换文件
sudo dd if=/dev/zero of=/swapfile bs=512M count=10
# count的大小就是增加的swap空间的大小,bs是块大小为512M,所以空间大小是bs*count=5G
sudo mkswap /swapfile
# 把刚才空间格式化成swap格式
sudo chmod 0600 /swapfile  
# 更改交换文件的权限为只有root用户可读写
sudo swapon /swapfile
# 使用刚才创建的swap空间

完成后,可以通过以下命令释放内存【swap内存会占用虚拟机磁盘容量,因此可以释放掉】:

sudo swapoff /swapfile

在这里插入图片描述
可以看到,现在Swap区已经没有内存了。

Logo

鸿蒙生态一站式服务平台。

更多推荐