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_rlibestrue. Los ejecutables completamente estáticos solo se pueden generar para objetivos biónicos. Para objetivos que no son biónicos, esto solo implica queprefer_rlibestrue, pero sigue vinculando alibcy alibdlde forma dinámica. - prefer_rlib: Cambia la vinculación
rustlibspara seleccionar la vinculaciónrlibde forma predeterminada para los objetivos de dispositivo, y vinculalibstdcomorliben 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.