rust_binary मॉड्यूल टाइप का इस्तेमाल करके, Rust बाइनरी बनाई जा सकती हैं. उदाहरण के लिए:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
इसी तरह, सिर्फ़ होस्ट के लिए मॉड्यूल उपलब्ध कराने के लिए, rust_binary_host का इस्तेमाल किया जा सकता है.
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 लाइब्रेरी को प्राथमिकता दी जाती है.