我从事涉及大量c++
文件的项目。我出于好奇问这个问题。
通常在 a完成后,将单独编译正在修改make
的特定文件以供后续s 使用。有时我甚至会在单个文件中遇到一个小的修改,结果编译几乎所有其他文件和最终的可执行文件。c++
make
c++
c++
Makefile
编译其他未修改c++
文件的原因是什么?
所以这里出现了timestamping
in的概念makefile
。比如说make
规则是这样的
output: dep1
rule-1
dep1: dep2
rule-2
当您执行makefile
thenmake
首先检查文件timestamp
,output
(如果output
文件不存在,则默认情况下执行规则)。说output
是在 1200 小时创建的,您在 1205 小时更改文件 dep1 并执行make
,然后make
发现目标输出比其依赖关系更旧,dep1
因此它将执行规则 1。如果假设output
是在 1300 时创建的,dep1
在 1230 时,现在您dep2
在 1310 时更新,并执行make
. 您可以在此处看到,因为dep1
比dep2
执行规则 2 更早,并且dep1
' 的时间戳已更改,output
现在比dep1
执行规则 1 更早。即使output
不直接依赖于,您也可以在此处看到dep2
它在您更新时重建dep2
这就是你的情况。检查makefile
并尝试检查您编辑的文件的依赖关系。将重建依赖于您编辑的文件的目标。