Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Modul biner
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Biner Rust dapat dihasilkan menggunakan jenis modul rust_binary
; misalnya:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
Demikian pula, Anda dapat menggunakan rust_binary_host
untuk menyediakan modul khusus host.
Properti rust_binary yang penting
Selain Properti umum yang penting,
properti berikut juga penting, atau menunjukkan perilaku unik
khusus untuk jenis modul rust_binary
:
- static_executable: Mem-build biner ini sebagai biner statis, dan menyiratkan
prefer_rlib
adalah true
. File yang dapat dieksekusi sepenuhnya statis hanya dapat dihasilkan untuk
target bionic. Untuk target non-bionik, hal ini hanya menyiratkan bahwa prefer_rlib
adalah true
, tetapi tetap menautkan libc
dan libdl
secara dinamis.
- prefer_rlib: Mengubah penautan
rustlibs
untuk memilih penautan rlib
secara default untuk target perangkat, dan menautkan libstd
sebagai rlib
pada target
perangkat. Perhatikan bahwa ini adalah perilaku default untuk target host, dan
tidak memengaruhinya.
Penautan
Secara default, modul rust_binary
yang menargetkan perangkat selalu ditautkan
secara dinamis ke libstd
dan secara default akan memilih library dylib
untuk
dependensi yang tercantum dalam rustlibs
kecuali jika prefer_rlib
adalah true
. Jika biner statis
sepenuhnya diperlukan, lihat properti static_executable
.
Modul host selalu ditautkan secara statis ke libstd
dan
secara default lebih memilih library rlib
untuk dependensi yang tercantum dalam
rustlibs
.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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`."]]