You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust项目添加Schnorr依赖遇编译错误求助

问题原因与解决方案

原因

你使用的schnorr = "0.0.20"是一个停止维护的老旧 crate,它的依赖链中包含packed_simd_2——这个库使用了Rust仅在nightly/预览版才开放的不稳定语言特性(如adt_const_params、stdsimd等),而你当前使用的是Rust稳定版(stable channel),稳定版明确禁止使用这类未稳定的特性,因此编译失败。rayon-core的编译错误是依赖链冲突引发的连锁问题。

解决方案

放弃这个老旧的schnorr crate,替换为维护活跃、支持稳定版的Schnorr签名实现:

推荐替代库

  • secp256k1:比特币生态广泛使用的椭圆曲线库,支持Schnorr签名,完全兼容稳定版Rust。
    在Cargo.toml中添加:
    secp256k1 = { version = "0.28", features = ["schnorr", "rand"] }
    
  • schnorrkel:基于Ristretto曲线的安全Schnorr签名实现,同样支持稳定版。
    在Cargo.toml中添加:
    schnorrkel = "0.11"
    

操作步骤

  1. 删除Cargo.toml中的schnorr = "0.0.20"配置
  2. 添加上述推荐库的配置
  3. 执行cargo update更新依赖缓存
  4. 重新运行cargo run即可正常编译

内容的提问来源于stack exchange,提问作者Zubayr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:53:10