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

Posted

技术标签:

【中文标题】如何避免 SCons 与 -j 参数混合输出?【英文标题】:How to avoid SCons mixed output with -j parameter? 【发布时间】:2016-07-16 22:36:00 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何避免 SCons 与 -j 参数混合输出?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在打开混合文件时启动 Blender 游戏引擎

如何避免输出到 jupyter notebook 中的可滚动框架?

如何在 Swift 中使用区分大小写和不区分大小写的混合字符串避免 Array 中的重复条目?

Less预处理——混合方法

如何避免“超出 GET/POST 参数数量”错误?

jQuery ajax 混合 html/js <script> 避免 <script> 打开时丢失上下文