Hice una biblioteca:
cargo new my_lib
y quiero usar esa biblioteca en un programa diferente:
cargo new my_program --bin
extern crate my_lib;
fn main {
println!("Hello, World!");
}
¿Qué debo hacer para que esto funcione?
No están en la misma carpeta del proyecto.
.
├── my_lib
└── my_program
Ojalá esto tenga sentido.
Pensé que podría anular la ruta según la guía de Carga , pero dice
No puede usar esta función para decirle a Cargo cómo encontrar cajas locales no publicadas.
Esto es cuando se usa la última versión estable de Rust (1.3).
rust
multifile
rust-crates
Andre S.
fuente
fuente
version
ypath
para una dependencia y eliminará lapath
parte cuando la publique :)git
lugar deversion
? ¿Algo como estomy_lib = { path = "...", git = "..." }
para que pueda usar mi copia local durante el desarrollo y el git remoto cuando alguien clona el repositorio e intenta compilar el programa?Estaba buscando un equivalente a
mvn install
. Si bien esta pregunta no es un duplicado de mi pregunta original, cualquiera que se encuentre con mi pregunta original y siga el enlace aquí encontrará una respuesta más completa.La respuesta es "no hay equivalente a
mvn install
porque tienes que codificar la ruta en el archivo Cargo.toml, lo que probablemente será incorrecto en la computadora de otra persona, pero puedes acercarte bastante".La respuesta existente es un poco breve y tuve que agitarme un poco más para que las cosas funcionaran, así que aquí hay más detalles:
rustc --explain E0432
incluye este párrafo que hace eco de la respuesta de Shepmaster:Cambiar de
use
aextern crate
me consiguió esto:Tuve que dar una palmada
pub
en la parte delantera de esa funciónAhora funciona.
fuente