這兩天在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文件
#/usr/sbin/swapon swapfile
swapfile指的是上一步創建的交換文件。
到這裏已經可以繼續編譯了,如果還報錯那就再增大你的swap分區,就是增加count的大小。當然要永久生效還不夠
4)新加的Swap文件已經起作用了,但系統重新啓動以後,並不會記住前幾步的操作。因此要在/etc/fstab文件中記錄文件的名字,和Swap類型,如:
/path/swapfile none Swap sw,pri=3 0 0
5)檢驗Swap文件是否加上
/usr/sbin/swapon -s