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