Бинарные модули

Бинарные файлы Rust можно создавать с помощью модуля типа rust_binary ; например:

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

Аналогичным образом, вы можете использовать rust_binary_host для предоставления модуля, предназначенного только для хост-системы.

Примечательные свойства rust_binary

Помимо важных общих свойств , следующие свойства также являются либо важными, либо демонстрируют уникальное поведение, специфичное для типа модуля rust_binary :

  • static_executable : Создает этот бинарный файл как статический и подразумевает, что prefer_rlib имеет значение true . Полностью статические исполняемые файлы могут быть созданы только для целевых платформ Bionic. Для целевых платформ, не относящихся к Bionic, это подразумевает только, что prefer_rlib имеет значение true , но при этом происходит динамическая компоновка libc и libdl .
  • prefer_rlib : Изменяет способ компоновки rustlibs , чтобы по умолчанию для целевых устройств выбиралась компоновка rlib , а libstd libstd как rlib на целевых устройствах. Обратите внимание, что это поведение по умолчанию для хост-приложений и не влияет на них.

Связь

По умолчанию модули rust_binary , предназначенные для устройств, всегда динамически связываются с libstd и по умолчанию будут отдавать предпочтение библиотекам dylib для зависимостей, перечисленных в rustlibs если только prefer_rlib не имеет true . Если требуются полностью статические бинарные файлы, см. свойство static_executable .

Модули хоста всегда статически связаны с libstd и по умолчанию отдают предпочтение библиотекам rlib для зависимостей, перечисленных в rustlibs .