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

使用“ cargo build ”,我只能得到2个带有单色语法错误消息的彩色单词“正在编译...”“错误...”。

颜色有什么问题?

最佳答案

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

cargo调用rustc时,它将拦截其输出并将其打印一次,以便它可以并行调用rustc多次,而不会混淆它们的输出。不幸的是,这掩盖了它在rustc中在控制台中运行的事实(因为严格地说不是:它正在运行在本身在控制台中运行的cargo中)。
rustc具有一个命令行参数,即使未在控制台中运行也可以强制颜色:--color always。在Linux上,cargo在调用rustc时启用此参数,因此错误消息的确带有颜色。我怀疑PowerShell处理颜色的方式不同于Linux控制台,这会阻止它为您工作。您可以通过在调用RUSTFLAGS之前将 --color always environment variable设置为cargo build来进行尝试。

关于rust - 为什么货船不能提供丰富多彩的错误消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58370809/

10-10 17:02