现象
使用VSCode+CMake构建C++工程时只能编译Release版本,无法编译Debug版本。
报错提示c++: internal compiler error: Killed (program cc1plus)
解决
编译过程中内存不足
方案1:增加内存
如果在虚拟机运行Linux可以增加虚拟机的分配内存或增大swap空间
具体方法可以参考这篇文章:C++ 错误解决 —— internal compiler error
方案2:降低开销
如果是物理环境或资源有限,可以转换思路降低build内存开销
VSCode的CMake插件默认make -jx参数中并行任务数x由系统根据处理器核心数自动分配
我们手动降低该值可以减小build过程中的内存开销,当然也会降低编译速度
在VScode Preference中找到Extensions - CMake Tools - Cmake: Parallel Jobs
默认值0对应自动分配,实际执行make -j6
改为4对应效果make -j4 成功通过