这两天在linux下编译apollo2.5的项目时不时会有这个错误
gcc: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
几番周折在网上找到了原因和解决办法
- 原因
编译时由于项目过于庞大,导致系统内存空间不够,才崩掉的
- 解决办法
增加一块更大的swap分区,Swap分区是在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用
1)成为超级用户
$su - root
2)创建Swap文件
# dd if=/dev/zero of=swapfile bs=64M count=16
64M*16 = 1G,这是创建一个1G的swap,创建一个有连续空间的交换文件。
3)激活Swap文件
mkswap /swapfile
swapon /swapfile
到这里已经可以继续编译了,如果还报错那就再增大你的swap分区,就是增加count的大小。当然要永久生效还不够
4)新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/fstab文件中记录文件的名字,和Swap类型,如:
/path/swapfile none Swap sw,pri=3 0 0
5)检验Swap文件是否加上
/usr/sbin/swapon -s