Rust 从GitHub构建从属板条箱时找不到'Cargo.toml'

Rust 从GitHub构建从属板条箱时找不到'Cargo.toml',rust,rust-cargo,Rust,Rust Cargo,我在试着用这个。我当前的Cargo.toml是: [package] name = "HomeDaemon" version = "0.1.0" authors = ["RTR <k.teza1@gmail.com>"] [dependencies.mosquitto] git = "https://github.com/kteza1/rust-mosquitto" ~/.cargo/git/checkout/rust-mosquito-8203e77dcf072bf7/mast

我在试着用这个。我当前的
Cargo.toml
是:

[package]
name = "HomeDaemon"
version = "0.1.0"
authors = ["RTR <k.teza1@gmail.com>"]

[dependencies.mosquitto]
git = "https://github.com/kteza1/rust-mosquitto"
~/.cargo/git/checkout/rust-mosquito-8203e77dcf072bf7/master
中的实际下载显示存在
cargo.toml


在上面的路径中有一个额外的
rust mosquitto
,这是问题吗?

问题来自您的:

从git下载项目时,会扫描所有子目录以查找更多的
Cargo.toml
文件。如果运行
RUST\u LOG=trace cargo build-v
,您将看到发生了什么:

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 }

Cargo然后尝试确保嵌套的
Cargo.toml
可以满足所有依赖项。

这并没有明确回答@tez提出的问题,但我遇到了与根本原因稍有不同的相同错误。我正在用vim编写一些简单的代码,所以我创建了一个简单的main.rs文件。当我
cargo run
it时,它吐出了同样的错误:

错误:在
/Users/yvonmanzi/Documents/Rust
或任何父目录中找不到
Cargo.toml


当然,没有事后诸葛亮,令人惊讶的是,
rustc main.rs
按照预期创建了一个二进制可执行文件,而
cargo run
却没有。事实证明,到目前为止,我已经使用
cargo新项目名称--bin
创建了所有的锈迹软件包(aka项目),如图所示,因此默认情况下包括
cargo.lock
cargo.toml
src
文件夹。希望,现在很清楚,我的只是一个简单的新手错误;简单地说,我的项目文件夹中没有
Cargo.toml
。所以,亲爱的rooky league Rustacean同事,如果您遇到同样的错误,请使用
cargo new project name--bin
命令创建您的项目。

@tez:因为您要上三个目录,而存储库中只有两个目录。您实际上要求您的存储库总是使用名称
rust mosquito
进行签出,而不使用其他名称。好的。从Cargo.toml位于branch name内的git下载时,文件夹结构不同。”如果这包含一个单独的问题和答案,你可以把它作为一个单独的问题发布,然后自己回答。如果非常相关,当你有足够的声誉发表评论时,你甚至可以在这个问题上留下评论,引用相关问题。
[dependencies.mosquitto]
version = "*"
path = "../../../rust-mosquitto" 
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 }