可以使用 rust_binary 模組類型產生 Rust 二進位檔,例如:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
同樣地,您可以使用 rust_binary_host 提供僅限主機的模組。
值得注意的 rust_binary 屬性
除了重要的通用屬性之外,下列屬性也很重要,或會顯示 rust_binary 模組類型特有的行為:
- static_executable:將這個二進位檔建構為靜態二進位檔,並隱含
prefer_rlib為true。只有 Bionic 目標才能產生完全靜態的可執行檔。對於非仿生目標,這只表示prefer_rlib是true,但仍會動態連結libc和libdl。 - prefer_rlib:變更
rustlibs連結,為裝置目標預設選取rlib連結,並將libstd連結為裝置目標上的rlib。請注意,這是主機目標的預設行為,不會對主機目標造成任何影響。
連結
根據預設,以裝置為目標的 rust_binary 模組一律會動態連結至 libstd,並優先使用 rustlibs 中列出的依附元件的 dylib 程式庫,除非 prefer_rlib 是 true。如需完全靜態的二進位檔,請參閱 static_executable 屬性。
主機模組一律會靜態連結至 libstd,且預設會優先使用 rlib 程式庫,做為 rustlibs 中列出的依附元件。