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

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