在编译或执行任务时,终端可能会弹出
terminate called after throwing an instance of ‘std::bad_alloc’ what(): std:
或
internal compiler error: Killed (program cc1plus)
等问题,该问题由内存空间耗尽导致。可以通过
free -m -s 1
查看内存使用情况,包括物理内存以及swap空间的大小。
这里根据需要将swap空间大小扩容到8g
# 清除交换空间内容,也可以直接重启计算机更快
sudo swapoff -a
# 创建新的swap文件,bs×count=空间大小,设置为8g
sudo dd if=/dev/zero of=/swapfile bs=512M count=16
# 设置权限
sudo chmod 0600 /swapfile
# 设置swap
sudo mkswap /swapfile
# 打开swap
sudo swapon /swapfile
# 查看是否生效
free -m
生效后即可重新执行导致错误的指令
若需要使交换空间大小永久生效
sudo gedit /etc/fstab
# 在最后加上新行
/swapfile swap swap sw 0 0
重启后永久生效