我处理涉及大量c++
文件的项目。我出于好奇而问这个问题。
通常在完成make
之后,将针对后续c++
单独编译正在修改的特定make
文件。有时我甚至会在单个c++
文件结果中经历一些小修改,几乎所有其他c++
文件和最终可执行文件的编译。
Makefile
编译其他未经修改的c++
文件的原因是什么?
答案 0 :(得分:1)
所以timestamping
中出现了makefile
的概念。比如说make
规则就像这样
output: dep1
rule-1
dep1: dep2
rule-2
当您执行makefile
时,make
首先检查timestamp
output
文件,(如果output
文件不存在,则默认情况下规则被执行)。说output
是在1200小时创建的,你在1205hrs更改了文件dep1并执行了make
,然后make
发现目标输出早于其relpndency dep1
所以它将执行规则-1。如果假设output
是在13:00创建的,dep1
是在1230小时创建的,现在您在1310hrs更新dep2
,并执行make
。您可以在此处看到,因为dep1
比执行dep2
规则2更早且dep1
的时间戳已更改,output
现在早于dep1
所以执行rule-1。您可以在此处看到即使output
不直接依赖dep2
更新dep2
时重建makefile
这就是你的情况。检查{{1}}并尝试检查您编辑的文件的依赖性。将重建依赖于您编辑的文件的目标。