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

فایل‌های باینری 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 فهرست شده‌اند، ترجیح می‌دهند.