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