Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 如何调试cmake(使用make后端)重建源代码的原因?_Makefile_Cmake_Gitlab - Fatal编程技术网

Makefile 如何调试cmake(使用make后端)重建源代码的原因?

Makefile 如何调试cmake(使用make后端)重建源代码的原因?,makefile,cmake,gitlab,Makefile,Cmake,Gitlab,我有一个包含多个阶段的Gitlab项目。通过使用gitlab CI yaml配置中的artifacts:关键字存档,将基于cmake的第一阶段的输出工件传递到下一阶段 下一个阶段成功地提取这些工件,包括所有要运行ctest的*.o和*.so文件(即,这是一个“测试”阶段) 然而,ctest/cmake决定它需要从头开始构建一切。cmake(或make后端)中是否有某种机制来显示触发了哪些规则以及为什么需要重新生成?例如,与源代码相比,工件是否过时了?或者发生了什么事?在当前可用的GNU make

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

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


然而,ctest/cmake决定它需要从头开始构建一切。cmake(或make后端)中是否有某种机制来显示触发了哪些规则以及为什么需要重新生成?例如,与源代码相比,工件是否过时了?或者发生了什么事?

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

好主意,我将调整我们的CI构建脚本,尝试让cmake像那样运行。问题是它是从ctest触发的,但也许我可以在调试输出之前运行make。我想也应该有同样的效果。