如何解决板条箱“ std”(取决于“ myexternalcrate”)中的“底物”重复lang项目:“ panic_impl”与sr-io冲突

时间:2019-12-18 09:26:48

标签: substrate

我正在Substrate 1.0运行时模块(基于node-template)中使用外部包装箱,该模块的编译错误为

duplicate lang item in crate 'std' (which 'myexternalcrate' depends on): 'panic_impl'.

= note: first defined in crate `sr_io` (which `node_template_runtime` depends on).

如果我正确理解了消息,那么我认为如果开发人员希望包括依赖于std中已经实现的sr-io功能的外部包装箱,这可能是一个常见问题,但是我不确定如果正确的话。

我已经看到here这个问题,该问题似乎已经在sr-io中得到修复,但这似乎不是这里的原因。

他们是解决这个问题的另一种方法吗?

编辑:在Cargo.toml中添加更改 我们正在尝试拉入名为nacl的板条箱

[dependencies]
nacl = {version = "0.3.0", default-features = false}

添加到lib.rs

extern crate nacl;

在运行时模块中

use nacl::public_box::*;

1 个答案:

答案 0 :(得分:2)

您要使用的板条箱(rust-nacl不支持no_std,因此不能在Substrate运行时环境中使用。

这些选项是:

  • 找到另一个支持no_std并具有类似功能的板条箱:https://crates.io/keywords/no_std
  • 更新/编写一个板条箱以支持no_std(根据板条箱的情况可能并不算糟)。