Módulos binarios

Los binarios de Rust se pueden producir usando el tipo de módulo rust_binary ; por ejemplo, como se muestra a continuación:

rust_binary {
    name: "hello_rust",
    srcs: ["src/hello_rust.rs"],
}

De manera similar, puede 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 propiedades también son importantes o exhiben un comportamiento único específico para el tipo de módulo rust_binary :

  • static_executable : crea este binario como un binario estático e implica que prefer_rlib es true . Los ejecutables completamente estáticos solo se pueden producir para objetivos biónicos. Para objetivos no biónicos, esto solo implica que prefer_rlib es true , pero aún vincula libc y libdl dinámicamente.
  • prefer_rlib : cambia el vínculo de rustlibs para seleccionar el vínculo de rlib de forma predeterminada para los dispositivos de destino y vincula libstd como un rlib en los dispositivos de destino. Tenga en cuenta que este es el comportamiento predeterminado para los destinos de host y, como tal, no tiene impacto en ellos.

Enlace

De forma predeterminada, los módulos rust_binary que se dirigen a dispositivos siempre se vinculan dinámicamente 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 archivos binarios totalmente estáticos, consulte la propiedad static_executable .

Los módulos host siempre están vinculados estáticamente con libstd y, de forma predeterminada, prefieren las bibliotecas rlib para las dependencias que se enumeran en rustlibs .