【发布时间】:2016-10-03 12:41:41
【问题描述】:
首先,我有这样的 SConstruct 文件:
Object('a.s')
Program('mya','a.o')
我运行 scons,它会生成“mya”。好的。然后我将我的 SConstruct 更改为:
Object('a.s',CCFLAGS='-DHello')
Program('mya','a.o')
再次运行 scons。什么都没做:
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: `.' is up to date.
scons: done building targets.
这对我来说很奇怪。当我使用 make 或 msbuild 系统时,只要项目配置文件中的 argumenet 发生更改,就会进行重建。这是默认规则。
但似乎scons的规则不同,这是设计的吗?只有当源文件更改时才会触发重建?如果这是设计,我认为当编译/链接器选项更改时,目标文件应该不同,因此应该触发重建,对吗?
是我的理解有误,还是 scons 中的一些特殊点我还需要了解? 非常感谢。
【问题讨论】:
-
旁白:没有我用过的
make有这个功能。事实上,这个特性是 SCons 相对于 make 的优势之一。
标签: linux triggers scons rebuild