Módulos binários

Os binários Rust podem ser produzidos usando o tipo de módulo rust_binary. Veja um exemplo abaixo:

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

Da mesma forma, use rust_binary_host para fornecer um módulo somente host.

Propriedades rust_binary importantes

Além das propriedades comuns importantes, as propriedades a seguir também são importantes ou exibem comportamentos exclusivos específicos para o tipo de módulo rust_binary:

  • static_execable: cria esse binário como um binário estático e implica que a propriedade prefer_rlib é true. Os executáveis totalmente estáticos só podem ser produzidos para destinos biônicos. Para destinos não biônicos, isso implica apenas que prefer_rlib é true, mas libc e libdl ainda são vinculadas dinamicamente.
  • prefer_rlib: muda a vinculação rustlibs para selecionar a vinculação rlib por padrão por dispositivos de destino. Vincula libstd como rlib nos dispositivos de destino. Esse é o comportamento padrão para destinos de host e, portanto, não tem impacto neles.

Vinculação

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

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