27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
İkili modüller
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Rust ikili dosyaları, rust_binary
modül türü kullanılarak üretilebilir. Örneğin:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
Benzer şekilde, yalnızca barındırıcıya yönelik bir modül sağlamak için rust_binary_host
değerini kullanabilirsiniz.
Önemli rust_binary özellikleri
Önemli ortak özelliklere ek olarak aşağıdaki özellikler de önemlidir veya rust_binary
modülü türüne özgü benzersiz bir davranış sergiler:
- static_executable: Bu ikili dosyayı statik ikili dosya olarak oluşturur ve
prefer_rlib
değerinin true
olduğunu belirtir. Tamamen statik yürütülebilir dosyalar yalnızca biyonik hedefler için üretilebilir. Biyonik olmayan hedefler için bu, yalnızca prefer_rlib
'ün true
olduğu anlamına gelir ancak yine de libc
ile libdl
'ı dinamik olarak bağlar.
- prefer_rlib: Cihaz hedefleri için varsayılan olarak
rlib
bağlantısını seçecek şekilde rustlibs
bağlantısını değiştirir ve cihaz hedeflerinde libstd
'i rlib
olarak bağlar. Bu durumun, ana makine hedefleri için varsayılan davranış olduğunu ve bu hedefleri etkilemediğini unutmayın.
Bağlantı
Cihazları hedefleyen rust_binary
modülleri varsayılan olarak her zaman libstd
'a dinamik olarak bağlanır ve prefer_rlib
true
olmadığı sürece varsayılan olarak rustlibs
'da listelenen bağımlılıklar için dylib
kitaplıklarını tercih eder. Tamamen statik ikili dosyalar gerekiyorsa static_executable
mülküne bakın.
Barındırma modülleri her zaman libstd
'e statik olarak bağlanır ve varsayılan olarak rustlibs
'de listelenen bağımlılıklar için rlib
kitaplıklarını tercih eder.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],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`."]]