Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)

最近在使用github上的一个模拟器,需要自己对其中文件进行make编译。但是中间遇到了不知道多少个错误,吐血。想了想还是记录一下,

错误

compiling moc/moc_qwt_plot_panner.cpp
compiling moc/moc_qwt_plot_picker.cpp
compiling moc/moc_qwt_plot_zoomer.cpp
compiling moc/moc_qwt_slider.cpp
compiling moc/moc_qwt_scale_widget.cpp
{standard input}: Assembler messages:
{standard input}:4145: Warning: end of file in string; '"' inserted
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
Makefile:139809: recipe for target 'obj/qrc_qgcresources.o' failed
make[1]: *** [obj/qrc_qgcresources.o] Error 4
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/emma/ub-anc/build-emulator/qgc_gui'
Makefile:43: recipe for target 'sub-qgc_gui-make_first-ordered' failed
make: *** [sub-qgc_gui-make_first-ordered] Error 2

解决方法

google了各种办法,发现应该是内存不够,ubuntu的make命令好像比较吃内存。

  1. 尝试用swap
  • check系统中swap的配置
  • 查看多少可用的swap以及memory
$ sudo swapon --show
$ free -h

Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)_第1张图片

  • check 可用的磁盘空间
$ df -h

Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)_第2张图片

  • 创建一个2G的swap file
$ sudo fallocate -l 2G /swapfile 
  • 验证创建的swapfile是否正确
$ ls lh /swapfile
  • 修改文件权限,只能被root访问
$ sudo chmod 600 /swapfile
$ ls lh /swapfile
  • 标记该文件空间为swap space
$ sudo mkswap /swapfile

详情见下图:
Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)_第3张图片
到这里,然后再重新执行qmake与make命令,就成功啦。
Note1 : ** swap的开启以及更多相关命令请参考:**
How To Add Swap Space on Ubuntu 16.04

Note2:该编译错误参考链接:
luascript.cpp.o Warning: end of file in string Ubuntu 14.04x64 - SOLVED #1408

你可能感兴趣的:(linux)