前言
今天安装spdlog,一个快速得C++日志库,按照文档步骤,不料出现了一堆错误,像c++: internal compiler error: Killed (program cc1plus)等一堆,刚开始以为环境有问题,弄了一会还是不行,查了一下才知道,是物理内存太小,需要swap分区才行。
创建swap分区
- 首先创建用户交换分区的文件,创建2G得分区文件。
dd if=/dev/zero of=/mnt/swap bs=1M count=2048
- 初始化分区文件
mkswap /mnt/swap
- 启动交换分区
swapon /mnt/swap
- 设置开机自动挂载
vim /etc/fstab
添加 /mnt/swap swap swap defaults 0 0
- 设置使用swap分区的阀值
vim /etc/sysctl.conf
修改文件中的vm.swappiness = 50
,阿里云linux默认是0。
sysctl vm.swappiness=50
当swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。当swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。我们这里设置的50,就表示当物理内存少于50%时便使用交换分区。
最后,就可以成功得编译程序了
参考
给阿里云的linux服务器添加swap分区
Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)