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 estáticos por completo solo se pueden generar para objetivos biónicos. Para objetivos no 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 las orientaciones del dispositivo, y vincula libstd como rlib en las orientaciones del dispositivo. Ten en cuenta que este es el comportamiento predeterminado para las orientaciones de host y, por lo tanto, no tiene impacto en ellas.

Vinculación

De forma predeterminada, los módulos rust_binary orientados a 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.