我在编译PCL库的过程中,总因为内存不足的问题出现C++: fatal error: Killed signal terminated program cc1plus导致编译中断,如下图所示
在此提供几种解决方式:
①增加内存
因为我的ubuntu系统是安装在VMware虚拟机当中的,可以从虚拟机中设置增大内存。
但是我的总物理内存是8G,设置的内存已经有7G了,依然解决不了问题。
②增加SWAP交换空间
可以在终端中输入 free -m 查看一下SWAP交换空间的大小(这里也可以看内存的使用情况),我这里只有约2G。
这里网上写的方式有很多,我参考了此篇博文这里,先创建临时分区:
sudo dd if=/dev/zero of=/swapfile bs=1G count=6
#count的大小就是增加的swap空间的大小,1G是块大小为1G,所以空间大小是bs*count=6G
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
su
chmod 0600 /swapfile
sudo swapon /swapfile
#使用刚才创建的swap空间
自己的程序编译完成后,可以在终端输入 swapoff -a 释放临时增加的交换空间。
③减少进程数量
还有一种方式就是减少cmake编译时的进程数量,在此处我的设定是:
make -j4 //选择4个进程同时处理
可以再减少一些同时处理的进程,但是对于有些编译程序,时间会特别长(就比如编译PCL)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)