You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04编译Drake源码时cc1plus被终止报错求助

解决Ubuntu 20.04编译Drake源码时cc1plus被终止的问题

问题核心

报错信息里的cc: fatal error: Killed signal terminated program cc1plus是关键——这是系统因内存不足触发OOM(内存溢出)杀手,终止了占用过高内存的C++编译前端进程cc1plus导致的。

解决方案

  • 降低并行编译线程数:将make -j4改为make -j2甚至make -j1,减少同时运行的编译进程数量,降低内存总占用。编译速度会变慢,但能避免内存耗尽。
  • 检查并扩展系统内存/交换空间
    1. 用free -h查看当前内存和swap使用情况,如果swap空间不足,可临时创建swap文件:
      sudo fallocate -l 4G /swapfile
      sudo chmod 600 /swapfile
      sudo mkswap /swapfile
      sudo swapon /swapfile
      
      编译完成后若不需要可关闭swap:sudo swapoff /swapfile并删除文件。
  • 限制Bazel内存使用:Drake底层用Bazel编译,可通过环境变量限制其内存占用比例,比如设置只使用系统50%的内存:
    export BAZEL_OPTS="--local_ram_resources=HOST_RAM*.5"
    make -j4
    
  • 清理编译缓存后重新编译:
    make clean
    make -j2
    

内容的提问来源于stack exchange,提问作者Yuxuan Wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:20:17