【问题标题】:Report target failure in addition to translation unit compilation failure除了翻译单元编译失败外,还报告目标失败
【发布时间】:2015-11-13 12:18:33
【问题描述】:

假设我有数百个目标,其中一些对于构建成功并不重要(例如,我在 make 上使用 --keep-going 或在 ninja 上使用 -k 9000),我需要找出哪些 cmake 目标失败.

使用add_custom_command(),可以将构建后命令添加到 cmake 目标中,该目标会像这样打印其名称:

success: myTarget.dll

但是失败呢?

如果链接失败,那么我可以解析我正在使用的任何内容 (ninja/make/msbuild) 的详细输出,并查看哪个目标失败了。

但是,如果翻译单元的编译失败,我得到的唯一错误是特定的源文件没有编译,并且确定哪个 cmake 目标确切地失败了更难。

我唯一想到的是在构建失败后运行它:ninja -nv 这将进行详细的空运行,我可以拦截链接命令并解析以这种方式失败的 cmake 目标...

还有其他想法吗?

【问题讨论】:

标签: cmake makefile ninja


【解决方案1】:

我最终使用了 make/ninja 的空运行并解析它们的输出

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多