Makefile 如何调试cmake(使用make后端)重建源代码的原因?
我有一个包含多个阶段的Gitlab项目。通过使用gitlab CI yaml配置中的Makefile 如何调试cmake(使用make后端)重建源代码的原因?,makefile,cmake,gitlab,Makefile,Cmake,Gitlab,我有一个包含多个阶段的Gitlab项目。通过使用gitlab CI yaml配置中的artifacts:关键字存档,将基于cmake的第一阶段的输出工件传递到下一阶段 下一个阶段成功地提取这些工件,包括所有要运行ctest的*.o和*.so文件(即,这是一个“测试”阶段) 然而,ctest/cmake决定它需要从头开始构建一切。cmake(或make后端)中是否有某种机制来显示触发了哪些规则以及为什么需要重新生成?例如,与源代码相比,工件是否过时了?或者发生了什么事?在当前可用的GNU make
artifacts:
关键字存档,将基于cmake的第一阶段的输出工件传递到下一阶段
下一个阶段成功地提取这些工件,包括所有要运行ctest的*.o和*.so文件(即,这是一个“测试”阶段)
然而,ctest/cmake决定它需要从头开始构建一切。cmake(或make后端)中是否有某种机制来显示触发了哪些规则以及为什么需要重新生成?例如,与源代码相比,工件是否过时了?或者发生了什么事?在当前可用的GNU make版本中,您最好使用make--debug=b
(基本调试),或者如果这还不够,则使用make--debug=v
(更详细的调试)。好主意,我将调整我们的CI构建脚本,尝试让cmake像那样运行。问题是它是从ctest触发的,但也许我可以在调试输出之前运行make。我想也应该有同样的效果。