为什么
cargo build --target wasm32-wasi
会在安装时抛出并提示没有 wasm32-wasi
的错误。
重现步骤
接下来是控制台的输出
➜ train git:(master) ✗ cargo build --target wasm32-wasi
Compiling train v0.1.0 (/user/playground/rustLang/train)
error[E0463]: can't find crate for `std`
|
= note: the `wasm32-wasi` target may not be installed
= help: consider downloading the target with `rustup target add wasm32-wasi`
error: cannot find macro `println` in this scope
--> src/main.rs:2:5
|
2 | println!("hello");
| ^^^^^^^
error: requires `sized` lang_item
For more information about this error, try `rustc --explain E0463`.
error: could not compile `train` due to 3 previous errors
➜ train git:(master) ✗ rustup target add wasm32-wasi
info: component 'rust-std' for target 'wasm32-wasi' is up to date
➜ train git:(master) ✗
我也有同样的问题。我在 MacOS 上:
❮ cargo wasi build --release
error: failed to find the `wasm32-wasi` target installed, and rustup is also not detected, you'll need to be sure to install the `wasm32-wasi` target before using this command
原来我使用的是 Rust 的自制安装:
❯ which cargo
/opt/homebrew/bin/cargo
解决方案是卸载 rust 的自制版本,然后按照 rust-lang.org 上的说明安装该版本(实际代码可能有所不同。只需访问 https://www.rust-lang.org/tools/install 并按照说明进行操作)
❯ brew uninstall rust
Uninstalling /opt/homebrew/Cellar/rust/1.67.1... (36,648 files, 891.6MB)
❯ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
所以,看来您在运行命令之前没有注册终端: 请确认您已安装emsdk:emscripten
下载后打开powershell终端并进入emsdk文件夹并执行以下命令:
./emsdk 安装最新版
./emsdk激活最新版
在 emsdk 和 wat2wasm 文档中,有必要在执行任何其他命令之前注册终端并加载 emsdk 引用。 在文档中,系统指示您每次打开每个新实例或新终端窗口时都执行此过程。
重新安装 Rust:rust
检查环境变量是否正常,然后重试
您已经在行中得到了答案:
帮助:考虑使用
rustup target add wasm32-wasi
下载目标
在命令提示符中只需键入:> rustup target install wasm32-wasi