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