คำถามติดแท็ก rust-cargo

4
แพคเกจสนิมที่มีทั้งไลบรารีและไบนารีหรือไม่
ฉันต้องการสร้างแพคเกจ Rust ที่มีทั้งไลบรารีที่สามารถใช้ซ้ำได้ สมมติว่าฉันไม่ได้สับสนความหมายใด ๆ ในระบบโมดูลสนิมCargo.tomlไฟล์ของฉันควรมีลักษณะอย่างไร
190 rust  rust-cargo 

5
ทำไมไฟล์สนิมถึงใหญ่มาก?
เพิ่งพบสนิมและได้อ่านสองบทแรกของเอกสารฉันพบวิธีและวิธีที่พวกเขากำหนดภาษาที่น่าสนใจเป็นพิเศษ ดังนั้นฉันตัดสินใจที่จะทำให้นิ้วของฉันเปียกและเริ่มด้วย Hello world ... ฉันทำเช่นนั้นบน Windows 7 x64 btw fn main() { println!("Hello, world!"); } การออกcargo buildและดูผลลัพธ์ในtargets\debugฉันพบผลลัพธ์ที่.exeเป็น 3MB หลังจากการค้นหาบางอย่าง (เอกสารของการตั้งค่าสถานะบรรทัดคำสั่งขนส่งสินค้าหายาก ... ) ฉันพบ--releaseตัวเลือกและสร้างการสร้างการเปิดตัว ด้วยความประหลาดใจของฉันขนาด. exe มีขนาดเล็กลงเพียงเล็กน้อยเท่านั้น: 2.99MB แทนที่จะเป็น 3MB ดังนั้นการสารภาพว่าฉันเป็นมือใหม่สำหรับสนิมและระบบนิเวศน์ของมันความคาดหวังของฉันจะเป็นไปได้ว่าภาษาการเขียนโปรแกรมระบบจะสร้างสิ่งที่กะทัดรัด ใครสามารถอธิบายอย่างละเอียดเกี่ยวกับสิ่งที่ Rust รวบรวมได้เป็นไปได้อย่างไรที่จะสามารถสร้างภาพขนาดใหญ่เช่นนี้จากโปรแกรม 3 สายการบิน? มันรวบรวมไปยังเครื่องเสมือนหรือไม่? มีคำสั่งสตริปที่ฉันพลาดไปหรือไม่ มีอะไรอีกบ้างที่ทำให้เข้าใจได้ว่าเกิดอะไรขึ้น
153 rust  rust-cargo 

2
โปรแกรม Rust สามารถเข้าถึงข้อมูลเมตาได้จากแพ็คเกจ Cargo ได้อย่างไร
คุณจะเข้าถึงข้อมูลเมตาของแพ็คเกจ Cargo (เช่นรุ่น) จากรหัส Rust ในแพ็คเกจได้อย่างไร ในกรณีของฉันฉันกำลังสร้างเครื่องมือบรรทัดคำสั่งที่ฉันต้องการให้มีการตั้งค่ามาตรฐาน--versionและฉันต้องการให้การใช้งานเพื่ออ่านเวอร์ชันของแพคเกจจากCargo.tomlดังนั้นฉันไม่จำเป็นต้องรักษาไว้ในที่สอง ฉันสามารถจินตนาการได้ว่ามีเหตุผลอื่นที่บางคนอาจต้องการเข้าถึงข้อมูลเมตาของ Cargo จากโปรแกรมเช่นกัน
150 rust  rust-cargo 

3
ฉันจะสร้างไบนารีหลายรายการด้วย Cargo ได้อย่างไร
ฉันต้องการสร้างโปรเจ็กต์ที่มี a daemonและ a clientโดยเชื่อมต่อผ่านซ็อกเก็ตยูนิกซ์ A clientและ a daemonต้องใช้สองไบนารีดังนั้นฉันCargoจะบอกได้อย่างไรว่าจะสร้างสองเป้าหมายจากแหล่งที่มาที่แตกต่างกันสองแหล่ง เพื่อเพิ่มความเป็นแฟนตาซีฉันอยากจะมีlibraryส่วนหลักของdaemonมันและแค่มีไบนารีเพื่อพันรอบมันและสื่อสารผ่านซ็อกเก็ต ดังนั้นเราจึงมีสถาปัตยกรรมต้นไม้ประเภทนี้: ├── Cargo.toml ├── target | └── debug | ├── daemon │ └── client └── src ├── daemon │ ├── bin │ │ └── main.rs │ └── lib │ └── lib.rs └── client └── bin └── main.rs ฉันสามารถสร้างไฟล์ปฏิบัติการซึ่งจัดการข้อกังวลทั้งสองได้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการทำเว้นแต่จะเป็นแนวทางปฏิบัติที่ดีมาก
106 rust  rust-cargo 

1
ฉันสามารถรวมข้อมูลการดีบักสำหรับรหัสของฉันโดยไม่มีแพ็คเกจเท่านั้น
เมื่อรวมข้อมูลการดีบักไบนารีของฉันจะกลายเป็น 400 MB สิ่งนี้เกิดขึ้นเนื่องจากสนิมมีข้อมูลการดีบักสำหรับการอ้างอิงทั้งหมด มีวิธีใดที่จะรวมข้อมูลการดีบักสำหรับรหัสของฉันเท่านั้น? [package] name = "app" version = "0.7.1" edition = "2018" [dependencies] actix = "*" actix-web = {version = "1.0", features = ["ssl"]} ... tokio-core = "*" tokio = "*" [profile.release] debug = true
11 rust  rust-cargo 

1
คุณเปิดใช้งานคุณลักษณะ "ลังไม้" ของ Rust ได้อย่างไร
rand::SmallRngฉันพยายามที่จะใช้ เอกสารกล่าวว่า PRNG นี้เป็นคุณลักษณะที่รั้วรอบขอบชิด : small_rngใช้คุณต้องเปิดใช้งานคุณลักษณะลัง ฉันค้นหามาแล้วและไม่สามารถหาวิธีเปิดใช้งาน "คุณสมบัติลัง" ได้ วลีนี้ไม่ได้ใช้แม้แต่น้อยในเอกสารสนิม นี่คือสิ่งที่ดีที่สุดที่ฉันสามารถทำได้: [features] default = ["small_rng"] แต่ฉันได้รับ: คุณสมบัติdefaultรวมถึงsmall_rngซึ่งไม่ใช่การพึ่งพาหรือคุณสมบัติอื่น เอกสารผิดหรือมีบางอย่างขาดหายไปหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.