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"],
}

Podobnie możesz użyć rust_binary_host, aby udostępnić moduł tylko dla hosta.

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. Pełne pliki wykonywalne można generować tylko w przypadku celów bionicznych. W przypadku celów niebędących celami bionicznymi oznacza to tylko, że prefer_rlib jest true, ale nadal dynamicznie łączy libc i libdl.
  • prefer_rlib: zmienia rustlibs na rlib, aby domyślnie wybierać tę drugą funkcję w przypadku kierowania na urządzenia, oraz łączy libstd jako rlib w przypadku kierowania na urządzenia. Pamiętaj, że jest to domyślne zachowanie w przypadku docelowych hostów i nie ma na nie wpływu.

Połączenie

Domyślnie moduły rust_binary, które kierują reklamy na urządzenia, są zawsze dynamicznie łączone z poziomem libstd i domyślnie preferują biblioteki dylib dla zależności wymienionych w poziomie 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.