Как подключать внешние библиотеки к rust?
Данный код не компилируется, проблема в строчке extern crate camera_capture;. Как добавить к rust внешнюю библиотеку? Я скачал репозиторий,но как и где прописать к нему путь?
extern crate camera_capture;
fn main() {
let cam = camera_capture::create(0).unwrap();
let cam = cam.fps(5.0).unwrap().start().unwrap();
for _image in cam {
println!("frame");
}
println!("done");
}
Прописал в cargo.toml следующий строки, не помогло
[lib]
name = "camera_capture"
path = "/home/anton/dev/rust_test_proj/libs/camera_capture"
Ответы (2 шт):
Зависимости с crates.io в Cargo.toml описываются как:
[dependencies]
foo = "<version>"
, где foo — это имя пакета, а version — требуемая версия, соответствующая синтаксису описанному в документации; cargo сам скачает и соберёт все зависимости.
Соответственно для camera_capture я записал бы это как-то так:
[dependencies]
camera_capture = ">=0.5.0"
Дополнительное чтение: Букварь, описание директив Сargo.toml
Если библиотека есть в реестре crates.io, ее можно указать по имени и версии, тогда cargo загрузит ее автоматически:
[dependencies]
camera_capture = "0.5"
Для справки, локальные зависимости в Cargo.toml можно описывать так:
[dependencies]
camera_capture = { path = "../libs/camera_capture" }
Этот способ, впрочем, не годится для кода, которым можно делиться с другими разработчиками. Для этого зависимости можно опубликовать на git-репозитории и использовать его URL в спецификации зависимости:
[dependencies]
camera_capture = { git = "https://github.com/foo/bar" }