Binärmodule

Rust-Binärdateien können mit dem Modultyp rust_binary erstellt werden. Beispiel:

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

Ebenso können Sie mit rust_binary_host ein Modul bereitstellen, das nur für den Host gilt.

Wichtige Eigenschaften von „rust_binary“

Zusätzlich zu den wichtigen gemeinsamen Properties sind die folgenden Properties entweder wichtig oder haben ein für den rust_binary-Modultyp spezifisches Verhalten:

  • static_executable: Erstellt diese Binärdatei als statische Binärdatei und impliziert, dass prefer_rlib true ist. Vollständig statische ausführbare Dateien können nur für Bionic-Ziele erstellt werden. Bei nicht-bionischen Zielen bedeutet das nur, dass prefer_rlib = true ist, aber libc und libdl werden trotzdem dynamisch verknüpft.
  • prefer_rlib: Ändert die rustlibs-Verknüpfung, sodass die rlib-Verknüpfung standardmäßig für Geräteziele ausgewählt wird, und verknüpft libstd als rlib mit Gerätezielen. Das ist das Standardverhalten für Hostziele und hat keine Auswirkungen auf sie.

Verknüpfung

Standardmäßig werden rust_binary-Module, die auf Geräte ausgerichtet sind, immer dynamisch mit libstd verknüpft. Außerdem werden standardmäßig dylib-Bibliotheken für Abhängigkeiten verwendet, die in rustlibs aufgeführt sind, es sei denn, prefer_rlib ist true. Wenn vollständig statische Binärdateien erforderlich sind, lesen Sie die Informationen zur Property static_executable.

Hostmodule sind immer statisch mit libstd verknüpft und bevorzugen standardmäßig rlib-Bibliotheken für Abhängigkeiten, die in rustlibs aufgeführt sind.