SCons 如何硬链接变体目录中的源代码?
How SCons hardlinks sources in variant directory?
我测试了 SCons 默认的 hardlink 行为。
我期待变体目录中硬linked 文件的修改也反映在原始文件中。但这并没有发生。
硬link真的是 SCons 文档中所述的默认行为,还是只是复制变体目录中的文件?
编辑:
关于我的 implementations/configurations 的详细信息:
我在项目的根目录中使用带有一个 SConscript 的 VariantDir
VariantDir 中的重复选项已打开
cmd 行中没有重复选项(默认)。
我正在使用自己的自定义工具。我仅使用 SCons 中默认可用的构建器中的程序构建器。
我尝试了以下标志:hard-soft-copy(默认)、soft-hard-copy、hard-copy、soft-copy 或 copy。
None 他们会给我一个真正的硬 link 副本。
我期望如下:
当我更改变体目录中的源文件时,更改将反映在原始文件中(在原始位置),因为变体目录中的文件是硬 link。
相反,变体目录中源文件的更改不会反映在原始文件中。
编辑 2:
在 运行 --debug=duplicate 之后,对于依赖周期中考虑的每个文件,我都得到了一条类似于以下的消息:
dup: relinking variant 'relative_path_to_file' from 'absolute_path'
如相应 Python reference docs 中所述,SCons 试图在内部查找和使用以创建硬链接的底层 os.link
方法在 Windows 下不可用。 os.symlink
(symbolic/soft 链接)也是如此,因此 Windows 下的 SCons 唯一剩下的选择是实际复制文件。
我测试了 SCons 默认的 hardlink 行为。
我期待变体目录中硬linked 文件的修改也反映在原始文件中。但这并没有发生。
硬link真的是 SCons 文档中所述的默认行为,还是只是复制变体目录中的文件?
编辑:
关于我的 implementations/configurations 的详细信息:
我在项目的根目录中使用带有一个 SConscript 的 VariantDir
VariantDir 中的重复选项已打开
cmd 行中没有重复选项(默认)。
我正在使用自己的自定义工具。我仅使用 SCons 中默认可用的构建器中的程序构建器。
我尝试了以下标志:hard-soft-copy(默认)、soft-hard-copy、hard-copy、soft-copy 或 copy。
None 他们会给我一个真正的硬 link 副本。
我期望如下:
当我更改变体目录中的源文件时,更改将反映在原始文件中(在原始位置),因为变体目录中的文件是硬 link。
相反,变体目录中源文件的更改不会反映在原始文件中。
编辑 2:
在 运行 --debug=duplicate 之后,对于依赖周期中考虑的每个文件,我都得到了一条类似于以下的消息:
dup: relinking variant 'relative_path_to_file' from 'absolute_path'
如相应 Python reference docs 中所述,SCons 试图在内部查找和使用以创建硬链接的底层 os.link
方法在 Windows 下不可用。 os.symlink
(symbolic/soft 链接)也是如此,因此 Windows 下的 SCons 唯一剩下的选择是实际复制文件。