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