标题更改后SCons StaticLibrary不会重建

时间:2016-12-02 23:38:30

标签: c++ c scons

在这个例子中,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',
    ],
)

任何提示?

1 个答案:

答案 0 :(得分:1)

在SCons中,决策程序决定是否需要重建目标。默认决策程序是MD5。这意味着即使重新构建目标文件,如果其MD5没有更改,则不需要重建包含/链接该对象的任何内容。这与Make相反,后者使用文件系统时间戳来决定是否重建目标。

因此,如果您的头文件更改为空格或其他无关紧要,则依赖关系树中的目标文件上方的任何内容都不需要重建。