Zrobiłem bibliotekę:
cargo new my_lib
i chcę użyć tej biblioteki w innym programie:
cargo new my_program --bin
extern crate my_lib;
fn main {
println!("Hello, World!");
}
co muszę zrobić, aby to zadziałało?
Nie znajdują się w tym samym folderze projektu.
.
├── my_lib
└── my_program
Mam nadzieję, że to ma sens.
Pomyślałem, że będę w stanie pokonać ścieżkę zgodnie z przewodnikiem Cargo , ale stwierdza
Nie możesz użyć tej funkcji, aby powiedzieć Cargo, jak znaleźć lokalne niepublikowane skrzynie.
Dzieje się tak, gdy używasz najnowszej stabilnej wersji Rusta (1.3).
rust
multifile
rust-crates
Andre S.
źródło
źródło
version
ipath
dla zależności, apath
część zostaniegit
zamiast tegoversion
? Coś takiegomy_lib = { path = "...", git = "..." }
, żebym mógł użyć mojej lokalnej kopii podczas programowania i zdalnego gita, gdy ktoś sklonuje repozytorium i spróbuje skompilować program?Szukałem odpowiednika
mvn install
. Chociaż to pytanie nie jest do końca powtórzeniem mojego pierwotnego pytania, każdy, kto natknie się na moje pierwotne pytanie i kliknie tutaj, znajdzie pełniejszą odpowiedź.Odpowiedź brzmi: „nie ma odpowiednika
mvn install
ponieważ musisz na stałe zakodować ścieżkę w pliku Cargo.toml, co prawdopodobnie będzie błędne na czyimś komputerze, ale możesz podejść całkiem blisko”.Obecna odpowiedź jest trochę krótka i musiałem się trochę dłużej męczyć, aby wszystko działało, więc oto więcej szczegółów:
rustc --explain E0432
zawiera ten akapit, który odzwierciedla odpowiedź Shepmastera:Przełączam się z,
use
abyextern crate
dostać to:Musiałem uderzyć
pub
z przodu tej funkcjiTeraz działa.
źródło