Я сделал библиотеку:
cargo new my_lib
и я хочу использовать эту библиотеку в другой программе:
cargo new my_program --bin
extern crate my_lib;
fn main {
println!("Hello, World!");
}
что мне нужно сделать, чтобы это работало?
Они не находятся в одной папке проекта.
.
├── my_lib
└── my_program
Надеюсь, это имеет смысл.
Я думал, что смогу переопределить путь в соответствии с руководством по грузам , но в нем говорится
Вы не можете использовать эту функцию, чтобы сообщить Cargo, как искать локальные неопубликованные ящики.
Это при использовании последней стабильной версии Rust (1.3).
rust
multifile
rust-crates
Андре С.
источник
источник
version
иpath
для зависимости, и она будетpath
git
вместоversion
? Что-то вроде этого,my_lib = { path = "...", git = "..." }
чтобы я мог использовать свою локальную копию во время разработки и удаленный git, когда кто-то клонирует репо и пытается скомпилировать программу?Я искал аналог
mvn install
. Хотя этот вопрос не является точной копией моего исходного вопроса, любой, кто наткнется на мой исходный вопрос и перейдет по ссылке здесь, найдет более полный ответ.Ответ: «нет эквивалента,
mvn install
потому что вам нужно жестко запрограммировать путь в файле Cargo.toml, который, вероятно, будет неправильным на чужом компьютере, но вы можете подойти довольно близко».Существующий ответ немного краток, и мне пришлось немного покопаться, чтобы все заработало, поэтому вот более подробная информация:
rustc --explain E0432
включает этот абзац, который повторяет ответ Шепмастера:При переключении с
use
на яextern crate
получил следующее:Мне пришлось нажать
pub
на перед этой функциейТеперь это работает.
источник