Los objetos binarios de Rust se pueden producir con el tipo de módulo rust_binary
, como en el siguiente ejemplo:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
Del mismo modo, puedes usar rust_binary_host
para proporcionar un módulo solo de host.
Propiedades notables de rust_binary
Además de las propiedades comunes importantes, las siguientes también son importantes o muestran un comportamiento único específico para el tipo de módulo rust_binary
:
- static_executable: Compila este objeto binario como uno estático e implica que
prefer_rlib
estrue
. Los ejecutables completamente estáticos solo se pueden generar para objetivos biónicos. Para objetivos que no son biónicos, esto solo implica queprefer_rlib
estrue
, pero sigue vinculando alibc
y alibdl
de forma dinámica. - prefer_rlib: Cambia la vinculación
rustlibs
para seleccionar la vinculaciónrlib
de forma predeterminada para los objetivos de dispositivo, y vinculalibstd
comorlib
en los objetivos de dispositivo. Ten en cuenta que este es el comportamiento predeterminado para los objetivos de host y, por lo tanto, no tiene impacto en ellos.
Vinculación
De forma predeterminada, los módulos rust_binary
que tienen como objetivo dispositivos siempre están vinculados de manera dinámica con libstd
y, de forma predeterminada, preferirán las bibliotecas dylib
para las dependencias enumeradas en rustlibs
, a menos que prefer_rlib
sea true
. Si se requieren objetos binarios completamente estáticos, consulta la propiedad static_executable
.
Los módulos de host siempre están vinculados de forma estática con libstd
y, de forma predeterminada, prefieren las bibliotecas de rlib
para las dependencias que se enumeran en rustlibs
.