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
。完全静态的可执行文件只能为 bionic 目标生成。对于非 bionic 目标,这仅暗示prefer_rlib
为true
,但它仍然动态链接libc
和libdl
。 - prefer_rlib:更改
rustlibs
链接,以默认选择设备目标的rlib
链接,并将libstd
链接为设备目标上的rlib
。请注意,这是主机目标的默认行为,并且对它们没有影响。
链接
默认情况下,面向设备的 rust_binary
模块始终针对 libstd
进行动态链接,并且默认情况下,对于 rustlibs
中列出的依赖项,将首选 dylib
库,除非 prefer_rlib
为 true
。如果需要完全静态的二进制文件,请参阅 static_executable
属性。
主机模块始终针对 libstd
进行静态链接,并且默认情况下,对于 rustlibs
中列出的依赖项,将首选 rlib
库。