SCons:如何将多个输出文件放在缓存中

时间:2010-09-03 06:41:56

标签: caching scons

除了目标文件之外,我们的编译器还会生成一个调试文件。最终调试目标需要此调试文件。我已经将此文件添加为目标的附加依赖项。但是当使用CacheDir()时,该文件应与目标文件一起存储。

我已经尝试将调试文件添加为目标文件的SideEffect()和Depends()以及最终目标的Depends()。但我没有运气。 SCons仅将目标文件存储在CacheDir()中,并且不知道如何构建调试文件。

是否可以将这两个文件存储在缓存目录中,以便在构建目标时检索它们?

1 个答案:

答案 0 :(得分:0)

要在同一次运行中获取两个构建变体,您必须为生成的文件使用不同的名称。在C / C ++项目的情况下,这可以通过 OBJSUFFIX 环境变量来实现。下面的代码将使所有调试输出目标文件显示为“.dbg.o”后缀而不是“.o”。

dbg_env = env.Clone(...)
dbg_env.Append(...) # add debug flags
dbg_env.Prepend(OBJSUFFIX = '.dbg')