gpt4 book ai didi

build - SCons:如何对程序的多个变体(发布/调试)使用相同的构建器

转载 作者:行者123 更新时间:2023-12-01 23:40:36 25 4
gpt4 key购买 nike

SCons 用户指南介绍 Multiple Construction Environments 的用法构建单个程序的多个版本并给出以下示例:

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 中的讨论并没有给这个主题带来更多的见解。

感谢您的意见!

最佳答案

SConscript 是在环境本身上定义的方法:

for dir, env in (('release', opt), ('debug', dbg)):
env.SConscript('SConscript', 'env', variant_dir=dir)

然后从 SConscript 您可以:

Import('env')

关于build - SCons:如何对程序的多个变体(发布/调试)使用相同的构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com