فایلهای باینری Rust را میتوان با استفاده از نوع ماژول rust_binary تولید کرد؛ برای مثال:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
به طور مشابه، میتوانید rust_binary_host برای ارائه یک ماژول فقط میزبان استفاده کنید.
ویژگیهای قابل توجه rust_binary
علاوه بر ویژگیهای مشترک مهم ، ویژگیهای زیر نیز یا مهم هستند یا رفتار منحصر به فردی را مختص به نوع ماژول rust_binary نشان میدهند:
- static_executable : این فایل باینری را به صورت یک فایل باینری ایستا میسازد و نشان میدهد که
prefer_rlibtrueاست. فایلهای اجرایی کاملاً ایستا فقط برای اهداف بیونیک قابل تولید هستند. برای اهداف غیر بیونیک، این فقط به این معنی است کهprefer_rlibtrueاست، اما همچنانlibcوlibdlرا به صورت پویا پیوند میدهد. - prefer_rlib : پیوند
rustlibsرا تغییر میدهد تا پیوندrlibرا به طور پیشفرض برای اهداف دستگاه انتخاب کند، وlibstdرا به عنوان یکrlibبه اهداف دستگاه پیوند میدهد. توجه داشته باشید که این رفتار پیشفرض برای اهداف میزبان است و هیچ تاثیری بر آنها ندارد.
پیوند
به طور پیشفرض، ماژولهای rust_binary که دستگاهها را هدف قرار میدهند، همیشه به صورت پویا به libstd متصل میشوند و به طور پیشفرض کتابخانههای dylib را برای وابستگیهای ذکر شده در rustlibs ترجیح میدهند، مگر اینکه prefer_rlib مقدار true داشته باشد. اگر به فایلهای باینری کاملاً ایستا نیاز دارید، به ویژگی static_executable مراجعه کنید.
ماژولهای میزبان همیشه به صورت ایستا به libstd متصل میشوند و به طور پیشفرض کتابخانههای rlib را برای وابستگیهایی که در rustlibs فهرست شدهاند، ترجیح میدهند.