Os binários Rust podem ser produzidos usando o tipo de módulo rust_binary
, por exemplo:
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 queprefer_rlib
étrue
, maslibc
elibdl
ainda são vinculadas dinamicamente. - prefer_rlib: muda a vinculação
rustlibs
para selecionar a vinculaçãorlib
por padrão por dispositivos de destino. Vinculalibstd
comorlib
nos dispositivos de destino. Esse é o comportamento padrão para destinos de host e 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
.