首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从GitHub构建从属机箱时找不到`Cargo.toml`

从GitHub构建从属机箱时找不到`Cargo.toml`
EN

Stack Overflow用户
提问于 2015-07-23 02:23:22
回答 3查看 12.4K关注 0票数 5

我在试着用rust-mosquitto library。我当前的Cargo.toml是:

代码语言:javascript
复制
[package]
name = "HomeDaemon"
version = "0.1.0"
authors = ["RTR <k.teza1@gmail.com>"]

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

当我运行cargo build时,报告了以下错误:

代码语言:javascript
复制
Could not find `Cargo.toml` in `/Users/ravitejareddy/.cargo/git/checkouts/rust-mosquitto-8203e77dcf072bf7/rust-mosquitto`

~/.cargo/git/checkouts/rust-mosquitto-8203e77dcf072bf7/master中的实际下载显示存在Cargo.toml

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-23 07:29:15

问题出在你的Cargo.toml in examples/ticktock

代码语言:javascript
复制
[dependencies.mosquitto]
version = "*"
path = "../../../rust-mosquitto" 

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

代码语言:javascript
复制
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可以满足所有依赖项。

票数 5
EN

Stack Overflow用户

发布于 2020-06-13 22:22:05

这并没有具体回答@tez提出的问题,但我遇到了相同的错误,但根源略有不同。我在vim中编写了一些简单的代码,所以我创建了一个简单的main.rs文件。当我对它执行cargo run操作时,它显示出相同的错误:

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

当然,没有事后诸葛亮,令人惊讶的是,rustc main.rs像预期的那样创建了一个二进制可执行文件,而cargo run却没有。事实证明,到那时为止,我已经使用cargo new project-name --bin创建了我所有的rust包(也就是项目),如here所示,因此默认情况下包括Cargo.lockCargo.tomlsrc文件夹。希望现在很清楚,我的错误只是一个简单的菜鸟错误;我只是,从字面上看,我的项目文件夹中没有Cargo.toml。所以,亲爱的菜鸟联盟Rustacean,如果你得到同样的错误,用cargo new project-name --bin命令创建你的项目。

票数 5
EN

Stack Overflow用户

发布于 2021-12-08 07:11:34

当我在程序/脚本下执行这些*.sh之后(然后再次执行cargo build-bp ),它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31571091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档