为什么货物不能提供丰富多彩的错误消息?

问题描述 投票:0回答:1

在PowerShell中,如果我使用“ rustc”编译“ main.rs”,则可能会获得彩色的语法错误消息。

[使用“货物组装”,我只能得到两个彩色单词“ Compiling ...”“ error ...”和单色语法错误消息。

颜色怎么了?

rust
1个回答
0
投票

[就像许多可以输出颜色的程序一样,rustc检测其输出是直接发送到控制台还是重定向到文件。这是因为颜色通常是通过在输出中插入特殊控制字符来生成的,并且这些字符会污染文件。

[cargo调用rustc时,它将截获其输出并最后打印一次,这样它就可以并行调用rustc多次,而不会混淆它们的输出。不幸的是,这掩盖了它在rustc的控制台中运行的事实(因为严格来说不是:它正在运行在cargo的控制台中,而C0本身在控制台中运行)。

rustc具有命令行参数,即使不在控制台中运行也可以强制颜色:--color always。在Linux上,cargo在调用rustc时启用此参数,因此错误消息的确带有颜色。我怀疑PowerShell处理颜色的方式不同于Linux控制台,这会阻止它为您工作。您可以通过在调用RUSTFLAGS environment variable之前将RUSTFLAGS设置为--color always来进行尝试。

© www.soinside.com 2019 - 2024. All rights reserved.