运行 cargo bench (criterion/serde) 时编译错误

Compile error when running cargo bench (criterion/serde)

我在项目的 cargo.toml 中添加了以下几行,以便对我的代码进行基准测试:

[dev-dependencies]
criterion = "0.3"

[[bench]]
name = "samples"
harness = false

运行cargo bench之后,我得到了很多类似于下面的错误:

Compiling criterion v0.3.4
error[E0603]: module `export` is private
   --> C:\Development\Rust\cargo\registry\src\github.com-1ecc6299db9ec823\criterion-0.3.4\src\connection.rs:201:17
    |
201 | #[derive(Debug, Deserialize)]
    |                 ^^^^^^^^^^^ private module
    |
note: the module `export` is defined here
   --> C:\Development\Rust\cargo\registry\src\github.com-1ecc6299db9ec823\serde-1.0.123\src\lib.rs:275:5
    |
275 | use self::__private as export;

错误消息在我看来是 serdecriterion 之间存在问题。但是我在这两个项目issues中都没有发现这个错误信息,所以我的工作区可能有隐藏的原因。

一些附加信息:

您的依赖关系图中的 serde 版本和 serde_derive 版本不匹配。您需要使用 cargo update 来使它们同步。两者必须始终具有相同的版本号。