在这个例子中,foo.c包含foo.h. 当更改foo.h时,foo.c重建为foo.o,但libfoobar.a不重建。
Import('env')
penv = env.Clone()
penv.Append(CPPPATH=['./'])
penv.StaticLibrary('foobar',[
'foo.c',
'bar.c',
],
)
任何提示?
答案 0 :(得分:1)
在SCons中,决策程序决定是否需要重建目标。默认决策程序是MD5。这意味着即使重新构建目标文件,如果其MD5没有更改,则不需要重建包含/链接该对象的任何内容。这与Make相反,后者使用文件系统时间戳来决定是否重建目标。
因此,如果您的头文件更改为空格或其他无关紧要,则依赖关系树中的目标文件上方的任何内容都不需要重建。