linux C++编译出现c++: internal compiler error: Killed (program cc1plus)

编译出错现象:

/home/service/rpc/goya-rpc/src/rpc_server_impl.cc: In member function ‘void goya::rpc::RpcServerImpl::OnCallbackDone(google::protobuf::Message*, boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >)’:
/home/service/rpc/goya-rpc/src/rpc_server_impl.cc:101:44: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated (declared at /home/service/rpc/goya-rpc/thirdparty/install/include/google/protobuf/message_lite.h:430): Please use ByteSizeLong() instead [-Wdeprecated-declarations]
   int serialized_size = resp_msg->ByteSize();
                                            ^
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [src/CMakeFiles/goya-rpc.dir/rpc_server_impl.cc.o] Error 4
make[1]: *** [src/CMakeFiles/goya-rpc.dir/all] Error 2
make: *** [all] Error 2

出错原因是:编译机器运行内存不足,而大量template的扩展需要足够的内存。

#查看linux内存占用方式:
1、ps aux --sort -rss
2、free -m
3、top  按【shift + M键】倒序排列
4、cat /proc/meminfo

解决方法:

可以通过临时使用交换分区来解决:

=【第一步,按如下操作】=========================================

sudo dd if=/dev/zero of=/swapfile bs=64M count=16   
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
sudo mkswap /swapfile                           #把刚才空间格式化成swap格式
sudo swapon /swapfile                            #使用刚才创建的swap空间

=【第二步,关闭释放】==========================================
在编译完成后,最好可以关闭(释放)交换空间

sudo swapoff /swapfile
sudo rm /swapfile

之后继续执行你的相关操作就可以了。。。

注意:如果创建了临时空间之后仍提示“g++: internal compiler error: Killed (program cc1plus)”,可能是因为分配的空间不够大,可以继续分配更大的空间。

参考: 

1、https://blog.csdn.net/fenquegong2126/article/details/80988452

2、g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,内存不足问题解决 - 码上快乐 

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值