SCons 用户指南讲述了使用多个构建环境来构建单个程序的多个版本,并给出了以下示例:
opt = Environment(CCFLAGS = '-O2')
dbg = Environment(CCFLAGS = '-g')
o = opt.Object('foo-opt', 'foo.c')
opt.Program(o)
d = dbg.Object('foo-dbg', 'foo.c')
dbg.Program(d)
而不是手动为使用不同环境编译的对象分配不同的名称,VariantDir()
/variant_dir
听起来是一个更好的解决方案......
但是,如果我将Program()
构建器放在 SConscript 中:
Import('env')
env.Program('foo.c')
如何将不同的环境导出到同一个 SConscript 文件?
opt = Environment(CCFLAGS = '-O2')
dbg = Environment(CCFLAGS = '-g')
SConscript('SConscript', 'opt', variant_dir='release') #'opt' --> 'env'???
SConscript('SConscript', 'dbg', variant_dir='debug') #'dbg' --> 'env'???
不幸的是,SCons Wiki中的讨论并没有为这个主题带来更多的洞察力。
感谢您的输入!