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

يمكن إنشاء الملفات الثنائية بلغة Rust باستخدام نوع الوحدة rust_binary، على سبيل المثال:

rust_binary {
    name: "hello_rust",
    srcs: ["src/hello_rust.rs"],
}

وبالمثل، يمكنك استخدام rust_binary_host لتوفير وحدة مخصّصة للمضيف فقط.

سمات `rust_binary` البارزة

بالإضافة إلى السمات الشائعة المهمة، تتسم السمات التالية أيضًا بأهميتها أو بسلوكها الفريد الخاص بنوع الو2/} الوحدة: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.