makefile - 如何调试为什么cmake(带有make后端)重建源代码?
问题描述
我有一个具有多个阶段的 Gitlab 项目。artifacts:
通过使用gitlab CI yaml 配置中的关键字归档,基于 cmake 的第一阶段的输出工件被传递到下一阶段。
下一个阶段成功提取这些工件,包括所有要运行的 *.o 和 *.so 文件ctest
(即,这是一个“测试”阶段)。
但是 ctest / cmake 决定它需要从头开始构建所有内容。cmake (或 make 后端)中是否有一些机制来显示触发了哪些规则以及为什么需要重建?例如,与源相比,工件是否过时或发生了什么?
解决方案
在当前可用的 GNU make 版本中,最好的选择是使用make --debug=b
(基本调试)或者如果这还不够,make --debug=v
(更详细的调试)。
推荐阅读
- spring-boot - Spring-Boot、JPA 事务和 RabbitMQ 接收器 => 不一致的数据库状态
- typescript - 来自 OL-EXT 库和 Typescript 的动画集群
- node.js - 猫鼬攻击与总和和计数
- permissions - RSC 与#Linkedin 与 Bullhorn 的集成 - 权限问题
- python - 从逻辑表(sympy,sagemath)在 Python 中创建 Dnf 和 Cnf
- c - 函数和链表
- java - JUnit 5,尽管@Timeout 测试没有失败
- google-sheets - Google表格中带有OR条件的SUMIFS
- python - 如何使python方法像sqlalchemy一样接受表达式
- powerbi - 有没有办法为表 1 中的记录(表名)创建一个单击函数,以生成另一个表?