我得到了这个货物 toml 文件:
[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"
Run Code Online (Sandbox Code Playgroud)
在另一个板条箱中,我想添加对batch_jobs_lib. 我无法这样做。货物抱怨找不到板条箱。当我更改该部分的命名时[[bin]],它可以正常工作,但我只是想知道这段代码出了什么问题。
在同一工作区的另一个板条箱中,我尝试像这样声明依赖项:
batch_jobs_lib = { path = "../batch_jobs" }
Run Code Online (Sandbox Code Playgroud)
我收到此错误:error: no matching package named batch_jobs_lib found
使用此代码时,我无法访问该库的代码:
batch_jobs = { path = "../batch_jobs" }
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,Rust 甚至找不到任何包,但很乐意添加依赖项。
我是否遗漏了某些内容,或者我是否错误配置了我的 toml 文件,这是不允许/不可能的?
toml 表中的键[dependencies]指的是包名称,而不是包名称,在源中则相反。将库箱命名为与包不同的名称是非常不正统的,但仍然是可能的,这意味着您必须在源中以不同的方式引用库Cargo.toml:
[dependencies]
batch_jobs = { path = "../batch_jobs" }
Run Code Online (Sandbox Code Playgroud)
并在板条箱的源代码中取决于batch_jobs
use batch_jobs_lib::*;
Run Code Online (Sandbox Code Playgroud)
最好只依赖默认值并省略您[lib]的部分batch_jobs/Cargo.toml
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |