از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
ماژول های باینری
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
باینری های 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
فهرست شده اند ترجیح می دهند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Binary modules\n\nRust binaries can be produced using the `rust_binary` module type; for example: \n\n rust_binary {\n name: \"hello_rust\",\n srcs: [\"src/hello_rust.rs\"],\n }\n\nSimilarly, you can use `rust_binary_host` to provide a host-only\nmodule.\n\nNotable rust_binary properties\n------------------------------\n\nIn addition to the [Important common properties](/docs/setup/build/rust/building-rust-modules/android-rust-modules#important-common-properties),\nthe following properties are also either important, or exhibit unique behavior\nspecific to the `rust_binary` module type:\n\n- **static_executable** : Builds this binary as a static binary, and implies `prefer_rlib` is `true`. Fully static executables can only be produced for bionic targets. For non-bionic targets, this implies only that `prefer_rlib` is `true`, but it still links `libc` and `libdl` dynamically.\n- **prefer_rlib** : Changes the `rustlibs` linkage to select the `rlib` linkage by default for device targets, and links `libstd` as an `rlib` on device targets. Note that this is the default behavior for host targets, and has no impact on them.\n\nLinkage\n-------\n\nBy default, `rust_binary` modules that are targeting devices are always linked\ndynamically against `libstd` and by default will prefer `dylib` libraries for\ndependencies listed in `rustlibs` unless `prefer_rlib` is `true`. If fully\nstatic binaries are required, see the `static_executable` property.\n\nHost modules are always linked statically against `libstd` and\nby default prefer `rlib` libraries for dependencies that are listed in\n`rustlibs`."]]