在PowerShell中,如果我使用“ rustc”编译“ main.rs”,则可能会获得彩色的语法错误消息。
[使用“货物组装”,我只能得到两个彩色单词“ Compiling ...”“ error ...”和单色语法错误消息。
颜色怎么了?
[就像许多可以输出颜色的程序一样,rustc
检测其输出是直接发送到控制台还是重定向到文件。这是因为颜色通常是通过在输出中插入特殊控制字符来生成的,并且这些字符会污染文件。
[cargo
调用rustc
时,它将截获其输出并最后打印一次,这样它就可以并行调用rustc
多次,而不会混淆它们的输出。不幸的是,这掩盖了它在rustc
的控制台中运行的事实(因为严格来说不是:它正在运行在cargo
的控制台中,而C0本身在控制台中运行)。
rustc
具有命令行参数,即使不在控制台中运行也可以强制颜色:--color always
。在Linux上,cargo
在调用rustc
时启用此参数,因此错误消息的确带有颜色。我怀疑PowerShell处理颜色的方式不同于Linux控制台,这会阻止它为您工作。您可以通过在调用RUSTFLAGS
environment variable之前将RUSTFLAGS
设置为--color always
来进行尝试。