【问题标题】:Listing all failed targets列出所有失败的目标
【发布时间】:2015-10-13 15:43:13
【问题描述】:

我正在尝试构建一个在新工具链下构建时遇到问题的大型遗留代码库。为了加快修复问题,我运行

make -k

构建所有可以构建的东西,以便我以后可以专注于不可构建的东西。但即便如此,单个make 也需要一分钟才能找出下一个要解决的问题(这个代码库使用了一堆错综复杂的 Makefile,需要很长时间才能解析)。

有没有办法列出在单个 make -k 运行期间失败的所有目标?

【问题讨论】:

    标签: build makefile build-process gnu-make target


    【解决方案1】:

    在调试时,还需要注意同步异常,其中部分 stderr 消息可能丢失

    【讨论】:

      【解决方案2】:

      我会将make -k 输出重定向到一个文件,然后在其中查找错误模式。我使用vim,我通常会寻找这些:

      make:\ \*\*\*
      \*\*\*\ \[
      

      可以根据需要编写(自定义)日志解析器。

      【讨论】:

      • 好的,谢谢。我将添加 make 将这些错误打印到标准错误,因此我可以在 grepping 时忽略标准输出。对于我的目的来说可能已经足够了,但没有好的机器可解析输出并不是一个好兆头……
      • 对于这个特定的任务(来自 make 本身的错误),只需 stderr 就可以了,但是如果您想深入了解子进程的错误,您可能需要将 stdout 设置为好吧 - 并非所有进程都始终使用 stderr 来解决错误。此外,一些其他仅标准输出的消息也可用于构建失败分析。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2019-05-12
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多