ماژول های باینری

باینری های 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 است. فایل های اجرایی کاملا ایستا را فقط می توان برای اهداف بیونیک تولید کرد. برای اهداف غیر بیونیک، این فقط به این معنی است که prefer_rlib true است، اما همچنان libc و libdl را به صورت پویا پیوند می دهد.
  • prefer_rlib : پیوند rustlibs را تغییر می‌دهد تا پیوند rlib را به‌طور پیش‌فرض برای اهداف دستگاه انتخاب کند، و libstd به‌عنوان rlib در اهداف دستگاه پیوند می‌دهد. توجه داشته باشید که این رفتار پیش‌فرض برای اهداف میزبان است و هیچ تاثیری روی آنها ندارد.

پیوند

به طور پیش‌فرض، ماژول‌های rust_binary که دستگاه‌ها را هدف قرار می‌دهند، همیشه به‌صورت پویا با libstd مرتبط هستند و به‌طور پیش‌فرض کتابخانه‌های dylib برای وابستگی‌های فهرست‌شده در rustlibs ترجیح می‌دهند، مگر اینکه prefer_rlib true باشد. اگر به باینری های کاملاً ثابت نیاز است، ویژگی static_executable را ببینید.

ماژول های میزبان همیشه به صورت ایستا با libstd مرتبط هستند و به طور پیش فرض کتابخانه های rlib برای وابستگی هایی که در rustlibs فهرست شده اند ترجیح می دهند.