作用
将编译生成的文件和源代码目录相互分离
调用格式
VariantDir(variant_dir, src_dir, [duplicate])
env.VariantDir(variant_dir, src_dir, [duplicate])
SConscript(script, variant_dir, duplicate)
- variant_dir 编译文件的生成目录,一般不能位于src_dir目录下
- src_dir 源代码目录
- duplicate: 0 -- 不复制源代码的生成目录 1--复制源代码到生成目录 (未指定时,默认=1)
# 注意Sconscript文件中的源文件和目标文件应使用相对路径
# 否则编译生成的文件将按照绝对路径生成起不到源文件和编译生成文件相互隔离的目的
VariantDir在同一个文件中可以调用多次(一般用来编译多个目标)
示例1:
VariantDir('build','src',duplicate=0)
SConscript('build/Sconscript') # 这里应当指定生成目录下的SConscript文件
生成后的文件目录如下所示:
示例2:
SConscript('src/SConscript', variant_dir='build', duplicate=0)
效果与示例1一致