卡在编译中(substrate-node-template:make build )
Stuck in compilation (substrate-node-template:make build )
我是按照教程enter link description here走到这一步的,
make build
WASM_BUILD_TOOLCHAIN=nightly-2020-10-05 cargo build --release
Compiling node-template-runtime v2.0.0 (/home/wangliqiu2021/CLionProjects/substrate-node-template/runtime)
Building [=====================================================> ] 857/861: node-template-runtime(build)
cargo执行了很久(差不多一个+小时)没有结束,好像卡住了,有谁知道原因吗?帮帮我
OS:Ubuntu 20.04
CPU: AMD Ryzen 7 1700 八核处理器
编译并没有卡在编译中,只是因为800+的依赖需要一点时间。来自@gnunicorn this github issue:
Rust isn't particular quick with the compiling at the moment and opaque to the person in front, at this step (when compiling node-template-runtime
) we are actually building the project twice: once natively and once in wasm. So at some step in between it appears as if nothing happens and that can take up to half the total build time – if the other part took e.g. 10minutes then this process might take another 10min without any indicator of process (other than the CPU pumping hard).
您正在执行启用优化的发布版本 (cargo build --release
)。出于开发目的,常规构建或只是 cargo check
会快得多。
链接的 GitHub 问题中的一些评论提到 运行 一个 cargo clean
和重建有助于加快编译时间,所以你也可以试试。
来自您的用户名。我觉得你和我一样在中国
node-template-runtime(build)
表示您正在将 运行time 编译到 wasm 文件中。在此期间,它可能需要下载(因此请尝试使用 VPN)。
下载仅发生在 1.0.0 https://docs.rs/substrate-wasm-builder/1.0.0/substrate_wasm_builder/?search=
此外,wasm 编译也需要很长时间(取决于您的硬件)。
在2016款MacBookPro中,整个编译需要30分钟。
此外,build.rs
中可能存在错误。有时我不得不 运行 cargo clean
。如果我在 node-template-runtime(build)
.
时中断编译
找到原因了
$CARGO_HOME/config.toml
:
[build]
target-dir = "target"
删除它。
在我的例子中,问题是 WASM 运行时构建期望在本地 target
目录中找到 WASM 文件。
如果构建在 target
目录中找不到本地 WASM 文件 - 它只会挂起或死锁(例如 GitHub issue)。
我必须更改 ~/.cargo/config.toml
中的 target-dir
设置。
您还可以使用本地环境变量覆盖全局设置:
CARGO_TARGET_DIR=target cargo build
或者您可以使用 cargo CLI 标志:
cargo build --target-dir=target
请注意,某些基于 wasm-builder
的构建脚本会忽略 CARGO_TARGET_DIR
环境变量(例如 wasm_project.rs)。
我是按照教程enter link description here走到这一步的,
make build
WASM_BUILD_TOOLCHAIN=nightly-2020-10-05 cargo build --release
Compiling node-template-runtime v2.0.0 (/home/wangliqiu2021/CLionProjects/substrate-node-template/runtime)
Building [=====================================================> ] 857/861: node-template-runtime(build)
cargo执行了很久(差不多一个+小时)没有结束,好像卡住了,有谁知道原因吗?帮帮我
OS:Ubuntu 20.04
CPU: AMD Ryzen 7 1700 八核处理器
编译并没有卡在编译中,只是因为800+的依赖需要一点时间。来自@gnunicorn this github issue:
Rust isn't particular quick with the compiling at the moment and opaque to the person in front, at this step (when compiling
node-template-runtime
) we are actually building the project twice: once natively and once in wasm. So at some step in between it appears as if nothing happens and that can take up to half the total build time – if the other part took e.g. 10minutes then this process might take another 10min without any indicator of process (other than the CPU pumping hard).
您正在执行启用优化的发布版本 (cargo build --release
)。出于开发目的,常规构建或只是 cargo check
会快得多。
链接的 GitHub 问题中的一些评论提到 运行 一个 cargo clean
和重建有助于加快编译时间,所以你也可以试试。
来自您的用户名。我觉得你和我一样在中国
node-template-runtime(build)
表示您正在将 运行time 编译到 wasm 文件中。在此期间,它可能需要下载(因此请尝试使用 VPN)。
下载仅发生在 1.0.0 https://docs.rs/substrate-wasm-builder/1.0.0/substrate_wasm_builder/?search=
此外,wasm 编译也需要很长时间(取决于您的硬件)。
在2016款MacBookPro中,整个编译需要30分钟。
此外,build.rs
中可能存在错误。有时我不得不 运行 cargo clean
。如果我在 node-template-runtime(build)
.
找到原因了
$CARGO_HOME/config.toml
:
[build]
target-dir = "target"
删除它。
在我的例子中,问题是 WASM 运行时构建期望在本地 target
目录中找到 WASM 文件。
如果构建在 target
目录中找不到本地 WASM 文件 - 它只会挂起或死锁(例如 GitHub issue)。
我必须更改 ~/.cargo/config.toml
中的 target-dir
设置。
您还可以使用本地环境变量覆盖全局设置:
CARGO_TARGET_DIR=target cargo build
或者您可以使用 cargo CLI 标志:
cargo build --target-dir=target
请注意,某些基于 wasm-builder
的构建脚本会忽略 CARGO_TARGET_DIR
环境变量(例如 wasm_project.rs)。