二进制模块

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

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

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

值得注意的 rust_binary 属性

除了重要的公共属性之外,以下属性也很重要,或者表现出特定于rust_binary模块类型的独特行为:

  • static_executable :将此二进制文件构建为静态二进制文件,并暗示prefer_rlibtrue 。只能为仿生目标生成完全静态的可执行文件。对于非仿生目标,这仅意味着prefer_rlibtrue ,但它仍然动态链接libclibdl
  • prefer_rlib :更改rustlibs链接以默认为设备目标选择rlib链接,并将libstd链接为设备目标上的rlib 。请注意,这是主机目标的默认行为,因此对它们没有影响。

连锁

默认情况下,针对设备的rust_binary模块始终与libstd动态链接,默认情况下,除非prefer_rlibtrue ,否则默认情况下,将首选dylib库作为rustlibs中列出的依赖项。如果需要完全静态的二进制文件,请参阅static_executable属性。

主机模块始终与libstd静态链接,默认情况下,对于rustlibs中列出的依赖项,首选rlib库。