מודולים בינאריים

אפשר ליצור קובצי 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.