如何解决 Substrate `duplicate lang item in crate 'std' (which 'myexternalcrate' depends on): 'panic_impl' conflict with sr-io
How to solve Substrate `duplicate lang item in crate 'std' (which 'myexternalcrate' depends on): 'panic_impl' conflict with sr-io
我在我的 Substrate 1.0 运行时模块(基于 node-template
)中使用了一个 extern crate,它给出了
的编译错误
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
中实现的功能的外部 crate,这可能是一个常见问题,但我不确定这是否正确。
我已经看到这个问题 here,它似乎已在 sr-io
中修复,但似乎不是此处的原因。
他们有另一种解决方法吗?
编辑:添加对 Cargo.toml
的更改
我们正在尝试拉入名为 nacl
的箱子
[dependencies]
nacl = {version = "0.3.0", default-features = false}
已添加到 lib.rs
extern crate nacl;
在运行时模块中
use nacl::public_box::*;
您尝试使用的 crate (rust-nacl
) 不支持 no_std
,因此不能在 Substrate 运行时环境中使用。
选项是:
- 找到另一个支持
no_std
并具有类似功能的 crate:https://crates.io/keywords/no_std
- Update/Write 一个支持
no_std
的箱子(根据箱子的不同可能不会那么糟糕)。
我在我的 Substrate 1.0 运行时模块(基于 node-template
)中使用了一个 extern crate,它给出了
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
中实现的功能的外部 crate,这可能是一个常见问题,但我不确定这是否正确。
我已经看到这个问题 here,它似乎已在 sr-io
中修复,但似乎不是此处的原因。
他们有另一种解决方法吗?
编辑:添加对 Cargo.toml
的更改
我们正在尝试拉入名为 nacl
[dependencies]
nacl = {version = "0.3.0", default-features = false}
已添加到 lib.rs
extern crate nacl;
在运行时模块中
use nacl::public_box::*;
您尝试使用的 crate (rust-nacl
) 不支持 no_std
,因此不能在 Substrate 运行时环境中使用。
选项是:
- 找到另一个支持
no_std
并具有类似功能的 crate:https://crates.io/keywords/no_std - Update/Write 一个支持
no_std
的箱子(根据箱子的不同可能不会那么糟糕)。