आप src/bin
और अपने शेष स्रोतों को src
में बाइनरी स्रोत भी डाल सकते हैं। आप my project में एक उदाहरण देख सकते हैं। आपको अपने Cargo.toml
को बिल्कुल संशोधित करने की आवश्यकता नहीं है, और प्रत्येक स्रोत फ़ाइल को उसी नाम की बाइनरी में संकलित किया जाएगा।
अन्य जवाब के विन्यास तब तक बदल जाएगी:
$ tree
.
├── Cargo.toml
└── src
├── bin
│ └── mybin.rs
└── lib.rs
$ cat Cargo.toml
[package]
name = "example"
version = "0.0.1"
authors = ["An Devloper <[email protected]>"]
src/lib.rs
use std::error::Error;
pub fn really_complicated_code(a: u8, b: u8) -> Result<u8, Box<Error>> {
Ok(a + b)
}
src/bin/mybin.rs
extern crate example;
fn main() {
println!("I'm using the library: {:?}", example::really_complicated_code(1, 2));
}
और इसे निष्पादित करें:
$ cargo run --bin mybin
I'm using the library: Ok(3)
साथ ही, आप सिर्फ एक src/main.rs
कि वास्तविक निष्पादन योग्य के रूप में इस्तेमाल किया जाएगा बना सकते हैं। दुर्भाग्यवश, यह cargo doc
कमांड के साथ संघर्ष करता है:
एक पैकेज दस्तावेज नहीं कर सकता जहां पुस्तकालय और बाइनरी का एक ही नाम है। एक साथ एक नाम बदल कर या के रूप में doc = false
धन्यवाद डौग, मैं यह कोशिश करेंगे! क्या #! [Crate_name =] और #! [Crate_type] एनोटेशन वैकल्पिक हैं? –
जब आप कार्गो का उपयोग करते हैं, तो ये विकल्प अनावश्यक होते हैं क्योंकि कार्गो उन्हें कंपाइलर झंडे के रूप में पास करता है। यदि आप 'कार्गो बिल्ड --verbose' चलाते हैं, तो आप उन्हें' rustc' कमांड लाइन में देखेंगे। –
क्या आपको पता है क्यों '[[bin]]' टेबल की सरणी है? '[[Bin]]' का उपयोग क्यों करें और '[bin]' क्यों नहीं? इस पर कोई प्रलेखन प्रतीत नहीं होता है। – CMCDragonkai