无法编译节点运行时
Unable to compile node-runtime
我无法在 substrate v1.0 分支上编译节点运行时(作为 运行 ./scripts/build.sh 的一部分,来自 substrate git repo 基目录安装说明)。我得到的错误是:
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 | | );
| |__^
这之前在同一台机器上对我来说运行良好,但无论我现在尝试什么,我都无法再编译它。我的环境是 Ubuntu WSL 上的 18.04。
我怀疑它可能与最新的 Rust 版本 1.37.0 有关,因为这是自上次构建以来我所知道的对我的环境的唯一更改。但是我尝试使用 1.35.0、1.36.0、1.37.0 和 1.39.0-nightly 进行构建,但都遇到了同样的问题。我还尝试完全清除我的 .cargo 目录并从 substrate v1.0 分支的新克隆开始。
如有任何帮助,我们将不胜感激。
昨天也遇到这个问题,开始寻找解决办法。您需要做的就是降级夜间版本。你可以使用这个命令:
$ 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 时,它会起作用的!
我无法在 substrate v1.0 分支上编译节点运行时(作为 运行 ./scripts/build.sh 的一部分,来自 substrate git repo 基目录安装说明)。我得到的错误是:
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 | | );
| |__^
这之前在同一台机器上对我来说运行良好,但无论我现在尝试什么,我都无法再编译它。我的环境是 Ubuntu WSL 上的 18.04。
我怀疑它可能与最新的 Rust 版本 1.37.0 有关,因为这是自上次构建以来我所知道的对我的环境的唯一更改。但是我尝试使用 1.35.0、1.36.0、1.37.0 和 1.39.0-nightly 进行构建,但都遇到了同样的问题。我还尝试完全清除我的 .cargo 目录并从 substrate v1.0 分支的新克隆开始。
如有任何帮助,我们将不胜感激。
昨天也遇到这个问题,开始寻找解决办法。您需要做的就是降级夜间版本。你可以使用这个命令:
$ 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 时,它会起作用的!