~/rust/first
src
│ app
│ │ src
│ │ │ lib.rs
│ │ └ entry.rs E
│ └ Cargo.toml
└ main.rs E
Cargo.lock
Cargo.toml
这是我用 Rust 建立的第一个项目。
struct Entry{}
在 中有一个。其部分中的src/app/src/entry.rs
顶级Cargo.toml
列表。-level定义了。members = ["src/app"]
[workspace]
app
Cargo.toml
[package]name="app"
在顶层main.rs
我只有let app = app::Entry::new();
,但是编译器说“使用未声明的板条箱或模块app
”。
为什么在子目录中声明包“app”,然后将其定义为顶层工作区中的成员,这不足以Entry
在顶层 main.rs 中看到?
如果我添加app = { path = "./src/app" }
到该dependencies
部分,那么它就可以工作。但是为什么有工作区成员呢?
我错过了什么?
-- https://doc.rust-lang.org/stable/cargo/reference/workspaces.html
工作区成员不会自动相互依赖。这实际上是不可能的,因为这将意味着包之间存在循环依赖关系。