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