Módulos de objetos binarios

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 es true. Los ejecutables completamente estáticos solo se pueden generar para objetivos biónicos. Para objetivos que no son biónicos, esto solo implica que prefer_rlib es true, pero sigue vinculando a libc y a libdl de forma dinámica.
  • prefer_rlib: Cambia la vinculación rustlibs para seleccionar la vinculación rlib de forma predeterminada para los objetivos de dispositivo, y vincula libstd como rlib 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.