يمكن إنشاء ملفات Rust الثنائية باستخدام نوع الوحدة rust_binary
، على سبيل المثال:
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: يغيّر ربط
rustlibs
لاختيار ربطrlib
تلقائيًا لاستهداف الأجهزة، ويربطlibstd
كـrlib
عند استهداف الأجهزة. يُرجى العِلم أنّ هذا هو السلوك التلقائي لأهداف المضيف، ولا يؤثّر فيها.
الربط
بشكلٍ تلقائي، يتم دائمًا الربط الديناميكي لوحدات rust_binary
التي تستهدف الأجهزة مع libstd
، كما أنّها تفضّل بشكلٍ تلقائي استخدام مكتبات dylib
للتبعيات المُدرَجة في rustlibs
ما لم يكن prefer_rlib
هو true
. إذا كانت الملفات الثنائية الثابتة بالكامل مطلوبة، اطّلِع على السمة static_executable
.
يتم دائمًا ربط وحدات المضيف بشكل ثابت مع libstd
،
ويتم تلقائيًا تفضيل مكتبات rlib
للتبعيات المدرَجة في
rustlibs
.