二進制模塊

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