如何调试为什么 cmake(带有 make 后端)重建源代码?

时间:2021-06-08 14:18:32

标签: makefile cmake gitlab

我有一个包含多个阶段的 Gitlab 项目。通过使用 gitlab CI yaml 配置中的 artifacts: 关键字存档,将基于 cmake 的第一阶段的输出工件传递到下一阶段。

下一阶段成功提取这些工件,包括所有 *.o 和 *.so 文件以运行 ctest(即,这是一个“测试”阶段)。

但是 ctest / cmake 决定它需要从头开始构建所有内容。 cmake(或make后端)中是否有某种机制来显示触发了哪些规则以及为什么需要重建?例如。与来源相比,这些工件是否过时或发生了什么?

1 个答案:

答案 0 :(得分:1)

在当前可用的 GNU make 版本中,最好的办法是使用 make --debug=b(基本调试),如果这还不够,则使用 make --debug=v(更详细的调试)。

相关问题