解決問題

如果建構失敗,可能是因為 build.rs,這類程式會在建構期間執行任意操作。根本而言,這不符合 gnninja 的設計,後者的目標是達成靜態的確定性建構規則,盡可能提高建構作業的平行處理程度和重複性。

有些 build.rs 動作可自動支援,有些則需要進一步操作:

建構指令碼效果gn 範本是否支援您需要做的
檢查 rustc 版本,將功能設為開啟/關閉
檢查平台或 CPU,將功能設為開啟/關閉
產生程式碼是 - 在 gnrt_config.toml 中指定
建構 C/C++撰寫修補程式
任意其他動作撰寫修補程式

幸運的是,大部分 Crate 均不包含建構指令碼,而大部分建構指令碼只會執行前兩項動作。