يمكن إنتاج برامج ثنائية 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
.