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

如何通过gcc或Emacs获取无重复的编译报错文件列表

实现方案

下面提供两种可直接落地的实现方式,可根据你的使用习惯选择:

方案1:GCC配合shell命令生成

你用make -k0持续编译时,可直接对编译输出做过滤提取,一步生成无重复错误文件列表:

make -k0 2>&1 | grep -E '^/.*: (error|warning): ' | cut -d: -f1 | sort -u > error_files.txt

命令说明:

  • 2>&1 将gcc输出的错误信息(默认输出到标准错误)重定向到标准输出
  • grep规则可根据你的实际编译配置调整:如果你把[[deprecated]]的告警设为了错误,保留error匹配即可;如果是普通告警,把匹配规则改成对应warning字段即可
  • cut -d: -f1 按冒号分割输出行,取第一个字段即为报错文件的绝对路径
  • sort -u 自动对文件列表去重,最终结果写入当前目录下的error_files.txt

方案2:Emacs Compilation Mode 内置实现

如果你已经在Emacs中跑完了编译流程,可直接在Emacs内提取结果,不需要重新跑编译:

  • 切换到编译输出的compilation buffer,确保其为当前激活buffer
  • 按M-x打开minibuffer,输入以下Elisp代码执行,即可得到去重后的错误文件列表:
(delete-dups (mapcar #'car compilation-error-list))
  • 如果需要把列表保存到本地文件,执行以下代码即可(可自行修改代码中的文件保存路径):
(with-temp-file "~/need_fix_files.txt"
  (dolist (file (delete-dups (mapcar #'car compilation-error-list)))
    (insert file "\n")))

内容的提问来源于stack exchange,提问作者Romário

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:03