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