scons 使用 MD5 哈希值而不是文件修改时间来确定是否需要构建依赖项。
我希望这是默认行为。但是,除了编辑文件以使其不同之外,是否有任何方法可以强制它假设特定文件已过期(相当于“触摸”)?
编辑:用例:
二进制文件 F 用于使用工具 X 创建另一个文件 G。出于某种原因,文件 G 已更改(已损坏,或我对其进行了编辑)或工具 X 已更改,我想重新创建文件 G 及其下游的所有内容.
编辑:这仅供偶尔使用。我不希望这种情况总是发生,只发生在我要求的那几次。此外,我可能不提前知道特定文件。出于这个原因,我不想修改 SConscript/SConstruct 文件来构建特定文件。我想要的是在命令提示符下执行此操作:
scons {something to specify file foobar.h}
这将强制 scons 根据 foobar.h 构建所有文件,而只需键入
scons
将使用 MD5 哈希值进行常规构建以进行依赖性检查。我不介意提前编辑 SConscript/SConstruct 文件以允许这样做(我猜是自定义决策器),如果有办法这样做的话,不会显着增加构建时间。
最佳答案
您是否查看过 Scons 的 --interactive 选项,在那里您可以清理和构建特定目标。
man page describing this.
关于touch - 相当于 scons 中的 "touch"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499926/