J'ai fait une bibliothèque:
cargo new my_lib
et je souhaite utiliser cette bibliothèque dans un programme différent:
cargo new my_program --bin
extern crate my_lib;
fn main {
println!("Hello, World!");
}
que dois-je faire pour que cela fonctionne?
Ils ne sont pas dans le même dossier de projet.
.
├── my_lib
└── my_program
J'espère que cela a du sens.
Je pensais pouvoir ignorer le chemin selon le guide Cargo , mais il indique
Vous ne pouvez pas utiliser cette fonction pour indiquer à Cargo comment trouver des caisses locales non publiées.
C'est lors de l'utilisation de la dernière version stable de Rust (1.3).
la source
version
etpath
pour une dépendance et celapath
supprimera la partie lorsque vous la publiez :)git
au lieu deversion
? Quelque chose comme çamy_lib = { path = "...", git = "..." }
pour que je puisse utiliser ma copie locale pendant le développement et le git distant quand quelqu'un clone le dépôt et essaie de compiler le programme?Je cherchais un équivalent à
mvn install
. Bien que cette question ne soit pas tout à fait une copie de ma question initiale, quiconque tombe sur ma question initiale et suit le lien ici trouvera une réponse plus complète.La réponse est "il n'y a pas d'équivalent à
mvn install
parce que vous devez coder en dur le chemin dans le fichier Cargo.toml qui sera probablement erroné sur l'ordinateur de quelqu'un d'autre, mais vous pouvez vous en approcher assez."La réponse existante est un peu brève et j'ai dû me débattre un peu plus longtemps pour que les choses fonctionnent, alors voici plus de détails:
rustc --explain E0432
inclut ce paragraphe qui fait écho à la réponse de Shepmaster:Passer de
use
àextern crate
m'a obtenu ceci:J'ai dû gifler un
pub
sur le devant de cette fonctionMaintenant ça marche.
la source