我拿到了这份货物清单:
[package]
edition.workspace = true
name = "batch_jobs"
version.workspace = true
[[bin]]
name = "batch_jobs"
path = "src/main.rs"
[lib]
name = "batch_jobs_lib"
path = "src/lib.rs"
字符串
在另一个crate中,我想添加对batch_jobs_lib
的依赖。我无法这样做。Cargo抱怨它找不到crate。当我更改[[bin]]
部分的命名时,我让它工作,但我只是想知道这段代码有什么问题。
在同一个工作区的另一个crate中,我试着像这样声明依赖项:
batch_jobs_lib = { path = "../batch_jobs" }
型
错误代码:error: no matching package named batch_jobs_lib found
当使用此代码时,我无法访问lib的代码:
batch_jobs = { path = "../batch_jobs" }
型
更糟糕的是,Rust甚至找不到任何包,但很乐意添加依赖项。
我错过了什么,或者我错误地配置了我的toml文件,这是不允许的/可能的?
1条答案
按热度按时间wi3ka0sx1#
toml表
[dependencies]
中的键指的是package名称,而不是crate,在源代码中是相反的。如果库crate与package不同,这是非常不正统的,但仍然是可能的,这意味着你必须在源代码中引用库而不是在Cargo.toml
中引用库:字符串
在机箱的源代码中,
型
最好只依赖默认值,并从
batch_jobs/Cargo.toml
中省略[lib]
部分