如何避免SCons混合输出与-j参数?

时间:2016-03-29 11:36:34

标签: scons

我正在尝试设置基于SCons的构建。

我使用的每个构建器都有多个可以使用sys.stdout.write()在控制台中写入的操作。

问题是控制台输出混合在不同的作业之间。

是否有可用的修复程序?我希望在执行后将特定作业的所有控制台输出都放在同一个地方。

1 个答案:

答案 0 :(得分:0)

您正尝试从多个并行运行的进程访问相同的资源(stdout)...没有简单的解决方法(另请参阅xargs: losing output when redirecting stdout to a file in parallel mode)。

您可以尝试将每个中间操作的输出写入临时文件,然后使用最后一个操作最终将文件的完整和聚合输出写入stdout。像这样,输出中有更大的连续blob文本...但是当中间操作通过抛出异常来杀死构建时,您可能也会丢失一些信息。然后你根本不会得到任何输出......这使得调试变得更加困难。