-1

我无法在基板 v1.0 分支上编译节点运行时(作为根据安装说明从基板 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 分支克隆开始。

非常感激任何的帮助。

4

1 回答 1

2

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

$ 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时,它​​会起作用!

于 2019-08-18T12:55:08.173 回答