二進位檔模組

您可以使用 rust_binary 模組類型產生 Rust 二進位檔,例如:

rust_binary {
    name: "hello_rust",
    srcs: ["src/hello_rust.rs"],
}

同樣地,您也可以使用 rust_binary_host 提供僅限主機的模組。

重要的 rust_binary 屬性

除了重要共用屬性之外,下列屬性也相當重要,或會顯示 rust_binary 模組類型的特殊行為:

  • static_executable:將此二進位檔建構為靜態二進位檔,並暗示 prefer_rlibtrue。您只能針對 Bionic 目標產生完全靜態的執行檔。如果是非混音目標,這只表示 prefer_rlibtrue,但仍會以動態方式連結 libclibdl
  • prefer_rlib:變更 rustlibs 連結,選取裝置目標預設使用的 rlib 連結,並將 libstd 連結至裝置目標的 rlib。請注意,這是主機目標的預設行為,不會對主機目標造成任何影響。

連結

根據預設,指定裝置的 rust_binary 模組一律會與 libstd 動態連結,且根據預設,除非 prefer_rlibtrue,否則針對 rustlibs 中列出的依附元件,會優先使用 dylib 程式庫。如果需要完整的靜態二進位檔,請參閱 static_executable 屬性。

主機模組一律會與 libstd 進行靜態連結,且預設會偏好 rlib 程式庫,以便處理 rustlibs 中列出的依附元件。