2015-07-22 3 views
5

Ich versuche, die rust-mosquitto library zu verwenden. Meine aktuellen Cargo.toml ist:"Cargo.toml" konnte beim Erstellen einer abhängigen Kiste von GitHub nicht gefunden werden.

[package] 
name = "HomeDaemon" 
version = "0.1.0" 
authors = ["RTR <[email protected]>"] 

[dependencies.mosquitto] 
git = "https://github.com/kteza1/rust-mosquitto" 

Wenn ich laufe cargo build, folgende Fehler gemeldet:

Could not find `Cargo.toml` in `/Users/ravitejareddy/.cargo/git/checkouts/rust-mosquitto-8203e77dcf072bf7/rust-mosquitto` 

Der eigentliche Download in ~/.cargo/git/checkouts/rust-mosquitto-8203e77dcf072bf7/master zeigt, dass Cargo.toml vorhanden ist.

Es gibt ein extra rust-mosquitto im obigen Pfad, ist das ein Problem?

Antwort

5

Das Problem kommt von Ihrem Cargo.toml in examples/ticktock:

[dependencies.mosquitto] 
version = "*" 
path = "../../../rust-mosquitto" 

Wenn Ihr Projekt von git Download, alle Unterverzeichnisse für mehr Cargo.toml Dateien gescannt werden. Wenn Sie RUST_LOG=trace cargo build -v ausführen, sehen Sie, was passiert:

TRACE:cargo::ops::cargo_read_manifest: looking for root package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master, source_id=https://github.com/kteza1/rust-mosquitto#7e08a291 
TRACE:cargo::ops::cargo_read_manifest: looking for child package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master 
TRACE:cargo::ops::cargo_read_manifest: read_package; path=/Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/Cargo.toml; source-id=https://github.com/kteza1/rust-mosquitto#7e08a291 
TRACE:cargo::ops::cargo_read_manifest: looking for child package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/.git 
TRACE:cargo::ops::cargo_read_manifest: not processing /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/.git 
TRACE:cargo::ops::cargo_read_manifest: looking for child package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/examples 
TRACE:cargo::ops::cargo_read_manifest: looking for child package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/examples/c-mosquitto 
TRACE:cargo::ops::cargo_read_manifest: looking for child package: /Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/examples/ticktock 
TRACE:cargo::ops::cargo_read_manifest: read_package; path=/Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/master/examples/ticktock/Cargo.toml; source-id=https://github.com/kteza1/rust-mosquitto#7e08a291 
DEBUG:cargo: handle_error; err=CliError { error: ChainedError { error: Unable to update https://github.com/kteza1/rust-mosquitto, cause: Could not find `Cargo.toml` in `/Users/shep/.cargo/git/checkouts/rust-mosquitto-77eb7033f32b19c9/rust-mosquitto` }, unknown: false, exit_code: 101 } 

Fracht dann, um sicherzustellen versucht, dass die verschachtelte Cargo.toml erfüllt alle Abhängigkeiten haben kann.

+0

Aber warum ist das ein Fehler? – tez

+2

@tez: Weil du * drei * Verzeichnisse hoch gehst, wenn es nur * zwei * im Repository gibt. Sie verlangen effektiv, dass Ihr Repository * immer * mit dem Namen 'rust-mosquitto' und * nichts anderem * ausgecheckt wird. –

+0

Ok. Die Ordnerstruktur unterscheidet sich beim Herunterladen von Git, wo sich Cargo.tom innerhalb des Filialnamens befindet. "Meister" in diesem Fall. – tez

Verwandte Themen