无法编译节点运行时

时间:2019-08-17 04:44:15

标签: substrate

我无法在基板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目录,并从基底v1.0分支的新克隆开始。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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 时,它也可以工作!