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

يمكن إنشاء ملفات 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.