SCons如何在变种目录中硬链接源?

时间:2016-08-30 09:38:33

标签: python scons

我测试了SCons默认的硬链接行为。

我期望变体dir中的hardlinked文件中的修改也会反映在原始文件中。但这并没有发生。

硬链接是否真的是SCons doc中所述的默认行为,或者只是复制variant目录中的文件?

编辑:

有关我的实施/配置的详细信息:

我在项目的根目录中使用VariantDir和一个SConscript

VariantDir中的重复选项

cmd行中没有重复选项(默认)。

我正在使用自己的自定义工具。我只使用SCons中默认可用的构建器中的程序构建器。

我尝试了以下标志:硬 - 软拷贝(默认),软 - 硬拷贝,硬拷贝,软拷贝或拷贝。

他们都不会为我提供真正的硬链接副本。

我期待以下内容:

当我在variant dir中更改源文件时,更改将反映在原始文件中(在原始位置),因为variant dir中的文件是硬链接。

相反,变体目录中源文件的更改不会反映在原始文件中。

编辑2:

运行--debug = duplicate后,我在依赖周期中考虑的每个文件都有类似这样的消息:

dup: relinking variant 'relative_path_to_file' from 'absolute_path'

1 个答案:

答案 0 :(得分:1)

如相应的Python reference docs中所述,SCons尝试在内部查找和使用以创建硬链接的基础os.link方法在Windows下不可用。 os.symlink(符号/软链接)也是如此,因此Windows下SCons唯一剩下的选项是实际复制文件。