2015-10-08 8 views
28

मैं एक पुस्तकालय बनाया है:स्थानीय अप्रकाशित क्रेट का उपयोग कैसे करें?

cargo new my_lib 

और मैं एक अलग कार्यक्रम में पुस्तकालय का उपयोग करना चाहते:

cargo new my_program --bin 
extern crate my_lib; 

fn main { 
    println!("Hello, World!"); 
} 

है कि मैं क्या करने के लिए इसे पाने के लिए क्या करना होगा काम?

वे एक ही प्रोजेक्ट फ़ोल्डर में नहीं हैं।

. 
├── my_lib 
└── my_program 

उम्मीद है कि यह समझ में आता है।

मैंने सोचा कि मैं Cargo guide के अनुसार पथ को ओवरराइड करने में सक्षम होगा, लेकिन यह कहा गया

आप इस सुविधा का उपयोग नहीं कर सकते हैं कार्गो बताओ कि स्थानीय अप्रकाशित क्रेट लगाने के लिए कर सकते हैं।

यह जंग के नवीनतम स्थिर संस्करण (1.3) का उपयोग करते समय होता है।

उत्तर

35

अपने निष्पादन के Cargo.toml करने के लिए एक निर्भरता खंड जोड़ें और पथ निर्दिष्ट:

[dependencies.my_lib] 
path = "../my_lib" 

या समकक्ष वैकल्पिक TOML:

[dependencies] 
my_lib = { path = "../my_lib" } 

चेक बाहर और अधिक विस्तार के लिए Cargo docs for specifying dependencies, जैसे स्थानीय पथ की बजाय गिट रिपॉजिटरी का उपयोग कैसे करें।

+3

क्या Cargo.toml को crates.io का जिक्र करते हुए स्थानीय क्रेट (विकास के लिए) का उपयोग करने का कोई तरीका है ताकि अन्य लोग भी अपना कोड बना सकें? –

संबंधित मुद्दे