我测试了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'
答案 0 :(得分:1)
如相应的Python reference docs中所述,SCons尝试在内部查找和使用以创建硬链接的基础os.link
方法在Windows下不可用。 os.symlink
(符号/软链接)也是如此,因此Windows下SCons唯一剩下的选项是实际复制文件。