首页 > 解决方案 > 如何调试 CMake 自定义命令依赖项的问题

问题描述

我正在尝试调试 CMake 中自定义命令中的依赖关系问题。我的依赖结构基本上看起来像(使用 GraphViz 表示法):

A -> B
{A; B} -> C -> D -> E

其中 C 和 E 是add_custom_target, A、B 和 D 是add_custom_command。CMake 正确地推断出 C 和 E 之间的目标级别依赖关系,但是在项目的第一次构建中,B 没有作为目标 C 的一部分构建。结果 E 失败(因为它需要 B 存在)。但是在第二次构建中,B 作为 C 的一部分生成,并且一切正常。

目前,我什至不知道如何调试它,尤其是在项目文件相当不透明的 Visual Studio 中。我可以看到在任何给定的构建中构建了什么,但是对于没有构建的东西,我看不出它们为什么没有被构建。CMake 中可用的调试方法(如--trace)似乎仅对配置时问题有用,但事实并非如此。

是否有任何工具可以调试这些事情,或者我只需要盯着我的 CMake 文件,直到我弄清楚这一点?

对于后代,下面有关于我的问题的更多具体细节,但如果我能找到任何合理的方法,我很乐意自己调试它:https ://github.com/zdevito/terra/pull/322#issuecomment -441084534

标签: cmake

解决方案


推荐阅读