二进制模块

Rust 二进制文件可以使用 rust_binary 模块类型生成;例如

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 库。