Módulos binários

Os binários Rust podem ser produzidos usando o tipo de módulo rust_binary ; por exemplo, como mostrado abaixo:

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

Da mesma forma, você pode usar rust_binary_host para fornecer um módulo somente host.

Propriedades Rust_binary notáveis

Além das propriedades comuns importantes , as propriedades a seguir também são importantes ou exibem um comportamento exclusivo específico para o tipo de módulo rust_binary :

  • static_executable : Constrói este binário como um binário estático e implica prefer_rlib é true . Executáveis ​​totalmente estáticos só podem ser produzidos para alvos biônicos. Para alvos não biônicos, isso implica apenas que prefer_rlib é true , mas ainda vincula libc e libdl dinamicamente.
  • prefer_rlib : Altera a ligação rustlibs para selecionar a ligação rlib por padrão para destinos de dispositivo e vincula libstd como uma rlib em destinos de dispositivo. Observe que esse é o comportamento padrão para destinos de host e, como tal, não tem impacto sobre eles.

Ligação

Por padrão, módulos rust_binary direcionados a dispositivos são sempre vinculados dinamicamente a libstd e, por padrão, preferem bibliotecas dylib para dependências listadas em rustlibs , a menos que prefer_rlib seja true . Se forem necessários binários totalmente estáticos, consulte a propriedade static_executable .

Os módulos host são sempre vinculados estaticamente a libstd e, por padrão, preferem bibliotecas rlib para dependências listadas em rustlibs .