错误:无法为 `syn` 选择版本

Meg*_*wal 0 rust rust-cargo rust-diesel rust-tokio nearprotocol

error: failed to select a version for `syn`. \
    ... required by package `serde_derive v1.0.125`\
    ... which satisfies dependency `serde_derive = "=1.0.125"` of package `serde v1.0.125`    
    ... which satisfies dependency `serde = "^1.0.125"` of package `mongodb v2.1.0`\
    ... which satisfies dependency `mongodb = "^2.1"` of package `wagmeet v0.1.0 
 \(/mnt/e/College/Eighth Semester/Crypto_Capable/wagmeet_app)`\
versions that meet the requirements `^1.0.60` are: 1.0.86, 1.0.85, 1.0.84, 1.0.83, 1.0.82, 1.0.81, 1.0.80, 1.0.79, 1.0.78, 1.0.77, 1.0.76, 1.0.75, 1.0.74, 1.0.73, 1.0.72, 1.0.71, 1.0.70, 1.0.69, 1.0.68, 1.0.67, 1.0.66, 1.0.65, 1.0.64, 1.0.63, 1.0.62, 1.0.61, 1.0.60

all possible versions conflict with previously selected packages.

  previously selected package `syn v1.0.57`\
    ... which satisfies dependency `syn = "=1.0.57"` 
    \ of package `near-sdk-core v3.0.1`
    ... which satisfies dependency `near-sdk-core = "=3.0.1"` of package `near-sdk-macros v3.0.1` \
    ... which satisfies dependency `near-sdk-macros = "=3.0.1"` \ of package `near-sdk v3.0.1`   
    ... which satisfies dependency `near-sdk = "^3"` of package `wagmeet v0.1.0 `\

failed to select a version for `syn` which could resolve this conflict
Run Code Online (Sandbox Code Playgroud)

Cargo.toml 文件

[package]
name = "wagmeet"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["rlib","cdylib"]

[dependencies]
near-sdk = "^3.1.0"
near-contract-standards = "^3.1.1"
mongodb = "2.0.0"
bson = { version = "2", features = ["chrono-0_4"] } # Needed for using chrono datetime in doc
tokio = "1"
chrono = "0.4" # Used for setting DateTimes
serde = "1"
serde_derive = "1.0.135"
Run Code Online (Sandbox Code Playgroud)
  • 更新添加了cargo.toml文件

我尝试过各种版本,目前似乎没有任何效果。mongoDb 是否兼容近协议?

Cha*_*man 5

您的两个依赖项之间存在冲突:near-sdk需要确切的 synversion 1.0.57,并且至少mongodb需要version 。显然两者不能共存。 syn1.0.60

你有几个解决方案:

  • 补丁near-sdk以支持更高syn版本。通常不建议这样做。
  • 升级到支持更高版本的near-sdk预发行版4.0.0当前为 4.0.0-pre.7syn ) 。这是一个不稳定的版本,可能会崩溃。
  • 降级到支持版本mongodb的版本。支持该功能的最新版本是 1.2.5,因此您需要在 Cargo.toml 中指定。但这依赖于旧的、不受支持的版本。syn1.0.57mongodb = "=1.2.5"

不存在“最佳解决方案”。所有的解决方案都是不好的。我可能会升级near-sdk到 4.0.0,但具体做什么取决于您的需求。