二进制模块

您可以使用 rust_binary 模块类型生成 Rust 二进制文件,如下所示:

rust_binary {
    name: "hello_rust",
    srcs: ["src/hello_rust.rs"],
}

同样,您也可以使用 rust_binary_host 提供主机专用模块。

重要的 rust_binary 属性

除了重要的通用属性之外,以下属性也很重要,或者具有特定于 rust_binary 模块类型的独有行为:

  • static_executable:将此二进制文件构建为静态二进制文件,并且表示 prefer_rlibtrue。只能为 Bionic 目标生成完全静态的可执行文件。对于非 Bionic 目标,此属性只表示 prefer_rlibtrue,但仍然动态关联 libclibdl
  • prefer_rlib:将 rustlibs 关联更改为在默认情况下为设备目标选择 rlib 关联,并关联 libstd 作为设备目标上的 rlib。请注意,对主机目标而言,这本来就是默认行为,因此,此属性对主机目标没有影响。

关联

默认情况下,以设备为目标的 rust_binary 模块始终动态关联到 libstd,并默认为 rustlibs 中列出的依赖项优先使用 dylib 库,除非 prefer_rlibtrue。如果需要完全静态的二进制文件,请参阅 static_executable 属性。

主机模块始终静态关联到 libstd,并默认为 rustlibs 中列出的依赖项优先使用 rlib 库。