Eu fiz uma biblioteca:
cargo new my_lib
e quero usar essa biblioteca em um programa diferente:
cargo new my_program --bin
extern crate my_lib;
fn main {
println!("Hello, World!");
}
o que eu preciso fazer para que isso funcione?
Eles não estão na mesma pasta de projeto.
.
├── my_lib
└── my_program
Esperançosamente, isso faz sentido.
Achei que seria capaz de substituir o caminho de acordo com o guia de carga , mas afirma
Você não pode usar este recurso para informar ao Cargo como encontrar caixas locais não publicadas.
Isso ocorre ao usar a última versão estável do Rust (1.3).
rust
multifile
rust-crates
Andre S.
fonte
fonte
version
epath
para uma dependência e issopath
git
vez deversion
? Algo assimmy_lib = { path = "...", git = "..." }
para que eu possa usar minha cópia local durante o desenvolvimento e o git remoto quando alguém clona o repo e tenta compilar o programa?Eu estava procurando por um equivalente a
mvn install
. Embora essa pergunta não seja exatamente uma duplicata da minha pergunta original, qualquer pessoa que encontrar minha pergunta original e seguir o link aqui encontrará uma resposta mais completa.A resposta é "não há equivalente a
mvn install
porque você tem que codificar o caminho no arquivo Cargo.toml que provavelmente estará errado no computador de outra pessoa, mas você pode chegar bem perto."A resposta existente é um pouco breve e tive que me debater um pouco mais para realmente fazer as coisas funcionarem, então aqui estão mais detalhes:
rustc --explain E0432
inclui este parágrafo que ecoa a resposta de Shepmaster:Mudar de
use
paraextern crate
me trouxe isto:Eu tive que colocar um
pub
na frente dessa funçãoAgora funciona.
fonte