在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/