Moduli binari

I file binari ruggine possono essere prodotti utilizzando il tipo di modulo rust_binary, ad esempio:

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

Allo stesso modo, puoi utilizzare rust_binary_host per fornire un modulo solo host.

Proprietà rust_binary importanti

Oltre alle proprietà comuni importanti, anche le seguenti proprietà sono importanti o mostrano un comportamento univoco specifico del tipo di modulo rust_binary:

  • static_executable: compila questo file binario come file binario statico e presuppone che prefer_rlib sia true. Gli eseguibili completamente statici possono essere prodotti solo per bersagli bionici. Per i bersagli non bionici, ciò implica solo che prefer_rlib è true, ma collega comunque libc e libdl in modo dinamico.
  • prefer_rlib: modifica il collegamento rustlibs per selezionare il collegamento rlib per impostazione predefinita per i target per dispositivo e collega libstd come rlib sui target per dispositivo. Tieni presente che questo è il comportamento predefinito per i target host e non ha alcun impatto su di essi.

Collegamento

Per impostazione predefinita, i moduli rust_binary che hanno come target i dispositivi sono sempre collegati dinamicamente rispetto a libstd e per impostazione predefinita preferiranno le librerie dylib per le dipendenze elencate in rustlibs, a meno che prefer_rlib non sia true. Se sono richiesti file binari completamente statici, consulta la proprietà static_executable.

I moduli host sono sempre collegati in modo statico a libstd e per impostazione predefinita preferiscono le librerie rlib per le dipendenze elencate in rustlibs.