[英]Why cargo build can’t offer colorful error messages?
在 PowerShell 中,如果我使用“rustc”編譯“main.rs”,我會在 colors 中得到語法錯誤消息。
使用“cargo build”,我只能得到 2 個彩色單詞“Compiling...”“error...”和單色語法錯誤消息。
顏色有什么問題?
像許多可以 output 顏色的程序一樣, rustc
檢測其 output 是直接進入控制台還是重定向到文件。 這是因為顏色通常是通過在 output 中插入特殊控制字符來生成的,這些字符會污染文件。
cargo
調用rustc
時,會截取其 output 並將其打印到最后一個 go 中,這樣它就可以多次並行調用rustc
而不會將它們的 Z78E6221F6393D1356681DB398F 混在一起。 不幸的是,這隱藏了它在rustc
的控制台中運行的事實(因為嚴格來說它不是:它運行到本身在控制台中運行的cargo
)。
rustc
有一個命令行參數,即使不在控制台中運行也可以強制顏色: --color always
。 在 Linux 上, cargo
在調用rustc
時啟用此參數,因此錯誤消息確實有顏色。 我懷疑 PowerShell 處理顏色的方式與 Linux 控制台不同,這會阻止它為您工作。 您可以通過在調用cargo build
之前將RUSTFLAGS
環境變量設置為--color always
來嘗試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.