Moduły binarne

Pliki binarne Rust można wygenerować za pomocą typu modułu rust_binary, na przykład:

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

I w podobny sposób możesz użyć rust_binary_host, aby udostępnić moduł tylko-hosta.

Ważniejsze właściwości rust_binary

Oprócz ważnych wspólnych właściwości te właściwości są również ważne lub mają unikalne zachowanie specyficzne dla typu modułu rust_binary:

  • static_executable: tworzy ten plik binarny jako statyczny plik binarny i zakłada, że prefer_rlib to true. W pełni statyczne pliki wykonywalne można tworzyć tylko na potrzeby celów bionicznych. W przypadku celów niebionicznych oznacza to, że prefer_rlib ma wartość true, ale nadal łączy dynamicznie elementy libc i libdl.
  • prefer_rlib: zmienia połączenie z rustlibs, by domyślnie wybrać połączenie rlib w przypadku urządzeń docelowych, oraz łączy libstd jako rlib na urządzeniach docelowych. Pamiętaj, że jest to domyślne działanie w przypadku celów hostów i nie ma na nie wpływu.

Połączenie

Domyślnie moduły rust_binary kierowane na urządzenia są zawsze połączone dynamicznie z zasadą libstd. Domyślnie preferują biblioteki dylib w przypadku zależności wymienionych w zasadzie rustlibs, chyba że prefer_rlib ma wartość true. Jeśli wymagane są całkowicie statyczne pliki binarne, zapoznaj się z właściwością static_executable.

Moduły hosta są zawsze łączone statycznie z libstd i domyślnie preferują biblioteki rlib dla zależności wymienionych w rustlibs.