【问题标题】:Unable to compile node-runtime无法编译节点运行时
【发布时间】:2019-08-18 21:14:26
【问题描述】:

我无法在substrate v1.0 分支上编译node-runtime(作为根据安装说明从substrate git repo 基本目录运行./scripts/build.sh 的一部分)。我得到的错误是:

error: cannot find macro proc_macro_call! in this scope --> /substrate/node/runtime/src/lib.rs:210:1 | 210 | / construct_runtime!( 211 | | pub enum Runtime with Log(InternalLog: DigestItem<Hash, AuthorityId, AuthoritySignature>) where 212 | | Block = Block, 213 | | NodeBlock = node_primitives::Block, ... | 234 | | } 235 | | ); | |__^

这以前在同一台机器上对我来说工作得很好,但无论我现在尝试什么,我都无法再编译它了。我的环境是 WSL 上的 Ubuntu 18.04。

我怀疑它可能与最新的 Rust 版本 1.37.0 有关,因为这是自上次构建以来我所知道的对我的环境的唯一更改。但我已经尝试使用 1.35.0、1.36.0、1.37.0 和 1.39.0-nightly 构建同样的问题。我还尝试过彻底清除我的 .cargo 目录,并从一个新的 substrate v1.0 分支克隆开始。

任何帮助将不胜感激。

【问题讨论】:

    标签: substrate


    【解决方案1】:

    昨天也和这个问题发生冲突,开始寻找解决方法。您需要做的就是降级夜间版本。您可以使用以下命令:

    $ rustup toolchain install nightly-2019-08-16

    然后

    $ rustup default nightly-2019-08-16

    在此之后,当您开始启动 ./scripts/build.sh 时,您将遇到与 WASM 相关的新问题。对于此问题的决定,请使用以下命令:

    $ rustup target add wasm32-unknown-unknown --toolchain nightly

    因此,您可以使用 build.sh 并且当您启动 cargo build --release 时,它会起作用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2013-12-30
      相关资源
      最近更新 更多