解决问题

如果构建失败,可能是 build.rs 文件所致:这些程序在构建过程中执行了任意操作。这与 gnninja 的设计完全不相符,它们旨在实现静态、确定性的构建规则,以最大限度地提高构建的并行性和可重复性。

系统支持自动进行某些 build.rs 操作;而有些需要进行额外的处理:

构建脚本效果我们的 gn 模板均支持您需要完成的工作
检查 rustc 版本以配置启用和停用功能
检查平台或 CPU 以配置启用和停用功能
Generating code是的,在 gnrt_config.toml 中指定
构建 C/C++进行补丁修复
Arbitrary other actions进行补丁修复

幸运的是,大多数 crate 不包含构建脚本,而且大多数的构建脚本只执行前两项操作。