Rust kitaplık modülü iki türdedir: Rust kitaplıkları oluşturan ve C uyumlu kitaplıklar oluşturan. Ayrıca, derleme sistemi amacıyla Rust prosedürel makrolarını (proc-macros
) özel bir kitaplık türü olarak düşünebilirsiniz.
rust_library
rust_library
modülü, diğer Rust modülleri tarafından kullanılmak üzere Rust kitaplıkları oluşturur.
Rust kitaplıklarında, _host
varyantlarına ek olarak mevcut bağlantıyı kontrol eden modül türleri bulunur.
Rust Kitaplığı Modülü Türü | Tanım |
---|---|
rust_library | Hem rlib hem de dylib kitaplık varyantlarını sağlar. AOSP, Rust kitaplıkları için bu modül türünü önerir. Bu tür, modüllerin rustlibs mülkü altında bağımlılık olarak listelendiğinde doğru şekilde çalışmasına olanak tanır. |
rust_library_rlib | Rust kitaplığının yalnızca rlib varyantını sağlar; yalnızca rlib varyantları sağlayan modüllerin rustlibs mülküyle çalışacağı garanti edilemez. |
rust_library_dylib | Rust kitaplığının yalnızca dylib varyantını sağlar; yalnızca dylib varyantları sağlayan modüllerin rustlibs mülküyle çalışacağı garanti edilemez. |
rust_ffi
rust_ffi
modülü, CC modülleriyle birlikte çalışabilmek için C uyumlu kitaplıklar oluşturur.
Rust FFI kitaplıkları, _host
varyantlarına ek olarak aşağıdaki tabloda gösterilen mevcut bağlantıyı kontrol eden modül türlerine sahiptir.
Rust FFI Kitaplığı Modülü Türü | Tanım |
---|---|
rust_ffi | Hem statik hem de paylaşılan C kitaplığı varyantlarını sağlar. |
rust_ffi_shared | Yalnızca C paylaşılan kitaplık varyantını sağlar. |
rust_ffi_static | Yalnızca C statik kitaplık varyantını sağlar. |
C'den Rust'u çağırmak için rust_ffi
kullanmayla ilgili temel bir örnek için Android Rust Desenleri sayfasına bakın.
Daha gelişmiş kullanım hakkında bilgi edinmek için resmi Rust belgelerini ziyaret edin.
rust_proc_macro
Rust prosedürel makroları (proc-makrolar), derleyiciyi kaynak kod dönüşümleri gerçekleştirecek veya yeni özellikler sağlayacak şekilde genişletmek için yararlı olabilir. Bu konular hakkında daha fazla bilgiyi resmi Rust belgelerindeki Prosedürlere Dayalı Makrolar sayfasında bulabilirsiniz.
Derleme sistemi açısından rust_proc_macro
modülü, rust_library
modüllerine benzer şekilde çalışır. rust_proc_macros
'e bağlı modüller için modül adını proc_macros
mülküne ekleyin.
proc_macros
derleyici eklentileri olduğundan, ana makineyi hedefler ve cihazda çalışacak kod üretmez.
Rust kitaplıklarının önemli özellikleri
Aşağıdaki tabloda tanımlanan özellikler, tüm modüller için geçerli olan önemli ortak özelliklere ek olarak verilmiştir. Bunlar, Rust kitaplık modülleri için özellikle önemlidir veya rust_library
modülü türüne özgü benzersiz bir davranış sergiler.
Rust Kitaplığı Özellikleri | Tanım |
---|---|
kabuk / ad | stem mülkü, çıkış kitaplığı dosya adını kontrol eder. Aksi takdirde dosya adı varsayılan olarak name olur.
Rust derleyicisi, kitaplık dosya adlarına belirli koşullar uygular. Sonuç olarak derleme sorunlarını önlemek için derleme sistemi bu koşulları uygular.
Çıkış dosyası adı |
crate_name | Bu, kitaplık oluşturan modüller için zorunlu bir özelliktir ve çıkış dosya adıyla da ilişkilidir. (stem tanımına bakın.) |
export_include_dirs | rust_ffi modülleri için bu özellik, göreli dahil etme yollarını temsil eden bir dize listesi tanımlar: bağımlı cc modüllerinin kullanabileceği üstbilgileri içeren yollar. |
rust_library veya rust_ffi bağlantısı
Cihazları hedefleyen Rust kitaplık modülleri varsayılan olarak her zaman libstd
'ye dinamik olarak bağlanır. Ancak ana makine modülleri her zaman libstd
'e statik olarak bağlanır.
rustlibs
bağımlılıkları için kullanılan bağlantı, kök modülün bağlantı tercihlerine bağlıdır. (Örneğin, prefer_rlib: true
içeren bir rust_binary
, rustlibs
'yi rlibs
olarak bağlayan Rust kitaplığı varyantlarını kullanır.)
rlibs
, dinamik rust kitaplıklarına (statik yürütülebilirler gibi) ihtiyaç duymayan kök bağımlılık modüllerinin üretilmesine izin vermek için hem dinamik hem de statik libstd
bağlantı varyantları sağlar. Doğru varyant, Soong tarafından otomatik olarak bağlanır.