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

يمكن إنتاج برامج ثنائية 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 المُستخدَمة في التبعيات المُدرَجة في rustlibs ما لم يكن prefer_rlib هو true. إذا كانت هناك برامج ثنائية ثابتة تمامًا مطلوبة، راجِع السمة static_executable.

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