الوحدات الثنائية

يمكن إنتاج برامج ثنائية 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. لا يمكن إنتاج الملفات التنفيذية الثابتة بالكامل إلا الأهداف الحيوية. بالنسبة إلى الأهداف غير الحيوية، يعني ذلك أن prefer_rlib فقط. هو true، ولكنه لا يزال يربط libc وlibdl ديناميكيًا.
  • prefer_rlib: لتغيير ربط rustlibs لاختيار ربط rlib. تلقائيًا لاستهدافات الأجهزة ولإدراج libstd في شكل rlib على الجهاز الأهداف. تجدر الإشارة إلى أنّ هذا هو السلوك التلقائي للأهداف المضيفة، لا يؤثر فيهم.

الارتباط

بشكل تلقائي، يتم دائمًا ربط وحدات rust_binary التي تستهدف الأجهزة. ديناميكيًا مقابل libstd وسيتم تلقائيًا اختيار dylib مكتبات التبعيات المدرجة في rustlibs ما لم يكن prefer_rlib هو true. إذا كانت كاملة البرامج الثنائية الثابتة مطلوبة، راجِع السمة static_executable.

دائمًا ما يتم ربط وحدات المضيف بشكلٍ ثابت مقابل libstd و بشكل افتراضي أفضل مكتبات rlib للتبعيات المدرجة في rustlibs