rust_binary
मॉड्यूल टाइप का इस्तेमाल करके, Rust बाइनरी बनाई जा सकती हैं. उदाहरण के लिए:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
इसी तरह, सिर्फ़ होस्ट के लिए उपलब्ध मॉड्यूल देने के लिए, rust_binary_host
का इस्तेमाल किया जा सकता है.
अहम rust_binary प्रॉपर्टी
अहम सामान्य प्रॉपर्टी के अलावा, ये प्रॉपर्टी भी अहम हैं या rust_binary
मॉड्यूल टाइप के हिसाब से खास तरीके से काम करती हैं:
- static_executable: इस बाइनरी को स्टैटिक बाइनरी के तौर पर बनाता है. साथ ही, इससे यह भी पता चलता है कि
prefer_rlib
,true
है. पूरी तरह से स्टैटिक, एक्ज़ीक्यूटेबल को सिर्फ़ Bionic टारगेट के लिए बनाया जा सकता है. नॉन-बायोनिक टारगेट के लिए, इसका मतलब सिर्फ़ यह है किprefer_rlib
true
है, लेकिन यह अब भीlibc
औरlibdl
को डाइनैमिक तौर पर लिंक करता है. - prefer_rlib: डिवाइस टारगेट के लिए डिफ़ॉल्ट रूप से
rlib
लिंकेज चुनने के लिए,rustlibs
लिंकेज को बदलता है. साथ ही, डिवाइस टारगेट परlibstd
कोrlib
के तौर पर लिंक करता है. ध्यान दें कि होस्ट टारगेट के लिए, यह डिफ़ॉल्ट व्यवहार है और इससे उन पर कोई असर नहीं पड़ता.
लिंकेज
डिफ़ॉल्ट रूप से, डिवाइसों को टारगेट करने वाले rust_binary
मॉड्यूल, libstd
के साथ हमेशा डाइनैमिक तौर पर लिंक रहते हैं. साथ ही, rustlibs
में दी गई डिपेंडेंसी के लिए, डिफ़ॉल्ट रूप से dylib
लाइब्रेरी को प्राथमिकता दी जाएगी. ऐसा तब तक होगा, जब तक prefer_rlib
true
नहीं है. अगर आपको पूरी तरह से स्टैटिक बाइनरी की ज़रूरत है, तो static_executable
प्रॉपर्टी देखें.
होस्ट मॉड्यूल हमेशा libstd
के साथ स्टैटिक तौर पर लिंक होते हैं. साथ ही, डिफ़ॉल्ट रूप से rustlibs
में दी गई डिपेंडेंसी के लिए rlib
लाइब्रेरी को प्राथमिकता देते हैं.