Rust 二进制文件可以使用rust_binary
模块类型生成;例如,如下图所示:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
同样,您可以使用rust_binary_host
提供仅主机模块。
值得注意的 rust_binary 属性
除了重要的公共属性之外,以下属性也很重要,或者表现出特定于rust_binary
模块类型的独特行为:
- static_executable :将此二进制文件构建为静态二进制文件,并暗示
prefer_rlib
为true
。只能为仿生目标生成完全静态的可执行文件。对于非仿生目标,这仅意味着prefer_rlib
是true
,但它仍然动态链接libc
和libdl
。 - prefer_rlib :更改
rustlibs
链接以默认为设备目标选择rlib
链接,并将libstd
链接为设备目标上的rlib
。请注意,这是主机目标的默认行为,因此对它们没有影响。
连锁
默认情况下,针对设备的rust_binary
模块始终与libstd
动态链接,默认情况下,除非prefer_rlib
为true
,否则默认情况下,将首选dylib
库作为rustlibs
中列出的依赖项。如果需要完全静态的二进制文件,请参阅static_executable
属性。
主机模块始终与libstd
静态链接,默认情况下,对于rustlibs
中列出的依赖项,首选rlib
库。