Binäre Module

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

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

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

Wichtige rust_binary-Attribute

Zusätzlich zu den wichtigen gemeinsamen Properties sind die folgenden Properties entweder wichtig oder weisen ein einzigartiges Verhalten auf, das für den Modultyp rust_binary spezifisch ist:

  • static_executable: Erstellt diese Binärdatei als statische Binärdatei. prefer_rlib ist true. 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 gleich true ist. libc und libdl werden aber weiterhin dynamisch verknüpft.
  • prefer_rlib: Ändert die rustlibs-Verknüpfung so, dass standardmäßig die rlib-Verknüpfung für Geräteziele ausgewählt wird, und verknüpft libstd als rlib mit Geräteziele. 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 und bevorzugen standardmäßig dylib-Bibliotheken für Abhängigkeiten, die in rustlibs aufgeführt sind, sofern prefer_rlib nicht true ist. Wenn vollständig statische Binärdateien erforderlich sind, sehen Sie sich die Property static_executable an.

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