g++: internal compiler error: Killed (program cc1plus)已解决

当编译android系统或者linux系统源码时,报错:

g++: internal compiler error: Killed (program cc1plus)

Please submit a full bug report

问题原因

这是因为编译系统内存不足导致的,常出现在本地电脑建的编译环境,可以使用交换分区的方式解决

快速方法

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

另外,注意也可以尝试编译时不要用太多线程,比如make -j32应该避免

详细步骤

swap简介:swap交换空间实际上是一个磁盘分区,在安装操作系统时,默认划分出物理内存的1~2倍空间用于交换分区,它类似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存。

阿里云ECS服务器的swap功能默认时没有开启的,因为swap功能会增加磁盘IO的占用率,降低磁盘寿命和性能,另一方面也可以借此让用户购买更大的内存。启用swap分区,一定程度上可以降低物理内存的使用压力,但如果云服务器上运行的应用确实需要更多的内存,还是需要购买物理内存。

启用swap分区步骤如下:

1、查看是否启用swap分区
# free -m
# cat /proc/swaps

 

2、如果未启用swap分区功能,则新建一个专门的文件用于swap分区

# dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block

注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区

 

3、设置交换分区文件

通过mkswap命令将上面新建出的文件做成swap分区

# mkswap /mnt/swap

注:mkswap时如果出现如下错误,是因为SWAP 文件太小,SWAP 文件至少应该大于 40KB,重新执行上一步骤生成更大的文件即可

mkswap: error: swap area needs to be at least 40 KiB

 

4、修改内核参数 /proc/sys/vm/swappiness 

当 swappiness为 0 时,表示最大限度的使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区;

当 swappiness 为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

根据实际需要设置该值即可,如下述方法临时修改此参数,假设我们配置为空闲内存少于 30% 时才使用 SWAP 分区

# echo 30 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效,可修改 /etc/sysctl.conf 文件,增加以下内容

# vim /etc/sysctl.conf

vm.swappiness=30

# sysctl -p

 

5、启用此交换分区的交换功能

#swapon /mnt/swap

注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a

 

6、设置开机时自启用 SWAP 分区

修改文件 /etc/fstab 中的 SWAP 行,添加一行/mnt/swap swap swap defaults 0 0

# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

 

7、检查是否设置成功

# cat /proc/swaps

# free -m

 

8、关闭swap分区

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。

使用命令 swapoff 关闭 SWAP

修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载#swapoff /mnt/swap

#swapoff -a >/dev/null

 

参考链接:

https://blog.csdn.net/weixin_41803041/article/details/79496016

https://www.cnblogs.com/fisherbook/p/11023499.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值