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
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"
我已经尝试了各种版本,但目前似乎没有任何效果。 mongoDb 是否兼容近协议?
您的两个依赖项之间存在冲突:
near-sdk
需要完全syn
版本1.0.57
,而mongodb
需要至少syn
版本1.0.60
。显然两者不能共存。
你的解决方案很少:
near-sdk
以支持更高版本的syn
。通常不建议这样做。near-sdk
升级到预发行版 4.0.0
(当前为 4.0.0-pre.7),以支持更高版本的 syn
。这是一个不稳定的版本,可能会崩溃。mongodb
降级到支持 syn
版本 1.0.57
的版本。支持该功能的最新版本是 1.2.5,因此您需要在 Cargo.toml mongodb = "=1.2.5"
中指定。但这依赖于旧的、不受支持的版本。没有“最佳解决方案”。所有的解决方案都是不好的。我可能会将
near-sdk
升级到 4.0.0,但具体做什么取决于您的需求。
当您使用指向不同版本的依赖项的工作区和多个 toml 文件时,可能会出现这种情况。当您在 bin 项目中使用依赖项时,它们会发生冲突并将错误转储给您。
确保所有依赖项都指向相同的 lib 版本并运行
cargo update
当我添加 git 依赖项时出现此错误。跑步
cargo update
解决了问题。
更多信息:
我得到的错误是:
all possible versions conflict with previously selected packages.
previously selected package `bytemuck v1.13.1`
... which satisfies dependency `bytemuck = "^1.7"` (locked to 1.13.1) of package `eframe v0.23.0`
... which satisfies dependency `eframe = "^0.23.0"` (locked to 0.23.0) of package `myproject v1.4.0
failed to select a version for `bytemuck` which could resolve this conflict
然后货物更新导致:
Updating crates.io index
Updating git repository `https://github.com/huggingface/candle.git`
Updating ab_glyph v0.2.21 -> v0.2.23
Updating accesskit v0.11.0 -> v0.11.2
Updating accesskit_consumer v0.15.0 -> v0.15.2
Updating accesskit_macos v0.7.1 -> v0.9.0
Updating accesskit_unix v0.5.0 -> v0.5.2
Updating accesskit_windows v0.14.0 -> v0.14.3
Updating accesskit_winit v0.14.1 -> v0.14.4
Adding addr2line v0.21.0
... and a whole lot more of Updating, Adding, and Removing.
尝试以下方法...