โมดูลไบนารี

ไบนารีของสนิมจะสร้างได้โดยใช้โมดูลประเภท 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 สำหรับทรัพยากร Dependency ที่ระบุไว้ใน rustlibs