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
है. पूरी तरह से स्टैटिक एक्ज़ीक्यूटेबल को सिर्फ़ बायोनिक टारगेट के लिए बनाया जा सकता है. नॉन-बायोनिक टारगेट के लिए, इसका मतलब सिर्फ़ यह है किprefer_rlib
true
है, लेकिन यह अब भीlibc
औरlibdl
को डाइनैमिक तौर पर लिंक करता है. - prefer_rlib: डिवाइस टारगेट के लिए डिफ़ॉल्ट रूप से
rlib
लिंकेज चुनने के लिए,rustlibs
लिंकेज को बदलता है. साथ ही, डिवाइस टारगेट परlibstd
कोrlib
के तौर पर लिंक करता है. ध्यान दें कि यह होस्ट टारगेट का डिफ़ॉल्ट व्यवहार है और इससे उन पर कोई असर नहीं पड़ता.
लिंकेज
डिफ़ॉल्ट रूप से, डिवाइसों को टारगेट करने वाले rust_binary
मॉड्यूल हमेशा डाइनैमिक तरीके से libstd
के साथ लिंक रहते हैं. साथ ही, डिफ़ॉल्ट रूप से यह rustlibs
में बताई गई डिपेंडेंसी के लिए dylib
लाइब्रेरी को तब तक प्राथमिकता देगा, जब तक prefer_rlib
true
न हो. अगर पूरी तरह से स्टैटिक बाइनरी ज़रूरी हैं, तो static_executable
प्रॉपर्टी देखें.
होस्ट मॉड्यूल हमेशा libstd
के साथ स्टैटिक तौर पर लिंक होते हैं. साथ ही, डिफ़ॉल्ट रूप से rustlibs
में दी गई डिपेंडेंसी के लिए rlib
लाइब्रेरी को प्राथमिकता देते हैं.