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

GCC 10.2交叉编译C++遇汇编警告及cc1plus终止问题排查求助

GCC 10.2交叉编译ARM时C++构建失败的调试方案
  • 排查内存不足问题:Killed signal terminated program cc1plus通常是系统OOM(内存不足)杀手终止了编译前端进程。执行dmesg | grep -i kill确认是否由OOM导致;临时解决方案可增加swap分区,或降低并行编译任务数(如调整make -j的参数值)。

  • 定位出错源文件:用make -n打印编译命令,随后单独编译可疑文件(如arm-linux-gnueabihf-g++ -c target_file.cpp -o target_file.o),逐步锁定引发错误的具体源文件。

  • 生成并检查中间汇编文件:编译时添加-save-temps参数,会生成预处理后的.ii文件和汇编.s文件。查看.s文件第2186487行附近的内容,排查是否存在格式异常或未正确换行的代码。

  • 禁用优化选项测试:若编译时使用了-O2/-O3等优化,改为-O0重新编译,排除优化逻辑生成异常汇编代码的可能。

  • 检查源文件编码与换行符:用cat -A target_file.cpp查看文件换行符,确保每行末尾为LF格式;若为DOS格式(CRLF),可使用dos2unix转换后重试。

  • 升级或替换交叉工具链:GCC 10.2可能存在特定架构编译bug,尝试升级到GCC 11+版本的arm-linux-gnueabihf工具链,或更换其他发行版的工具链包。

  • 检查预处理输出:添加-E参数仅执行预处理,查看生成的.ii文件对应行内容,排查宏展开后是否产生异常代码片段。

内容的提问来源于stack exchange,提问作者Jean-Michaël Celerier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:06:28