无法安装 cargo wasm-pack
can't install cargo wasm-pack
当我 运行 cargo install wasm-pack
在 windows 10 64 位上我得到这个错误:
error: failed to run custom build command for `openssl-sys v0.9.65`
Caused by:
process didn't exit successfully: `C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz\release\build\openssl-sys-932395a164949059\build-script-main` (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR
X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
openssl-src: Enable the assembly language routines in building OpenSSL.
running "perl" "./Configure" "--prefix=C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz\release\build\openssl-sys-a51d272dcebf1fc5\out\openssl-build\install" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-engine" "VC-WIN64A"
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "Det går inte att hitta filen." }', C:\Users\vilgo\.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-src-111.15.0+1.1.1k\src\lib.rs:469:39
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `wasm-pack v0.10.0`, intermediate artifacts can be found at `C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz`
Caused by:
build failed
我该如何解决?
我 运行 它在常规 cmd 中。
确保您已经安装了Open SSL 的开发包。
例如,Ubuntu 上的 libssl-dev
或 Fedora 上的 openssl-devel
。如果 OpenSSL 已经安装并且 crate 仍然无法找到它,您可以设置 OPENSSL_DIR
环境变量来指定 Open SSL 安装路径。如果您使用 windows,您可以使用 Win32/Win64 OpenSSL Installation Project 在 windows.
上提供简单的 OpenSSL 安装
问题
我认为你的问题发生是因为所有这三件事都发生了:
- 您可能启动了 wasm-pack 构建 from an msys shell。
- wasm-pack 依赖于 Rust 的 OpenSSL 绑定,它默认尝试通过源构建 OpenSSL。
- OpenSSL 的构建脚本是用 Perl 编写的。 msys Perl 不会创建以
\
作为目录分隔符的 Windows 路径,这会导致 OpenSSL 构建失败。
解决方案
这三个解决方案中的任何一个 都应该可以解决您的问题:
修复步骤 #3:使用本机 Windows Perl
编译 OpenSSL
确保您的默认 Perl 安装是“原生”Windows Perl,例如 Strawberry Perl。确保您的构建环境没有默认为 msys perl。然后,重新尝试从源代码编译 wasm-pack 和 OpenSSL。
修复步骤 #2:使用预编译的 OpenSSL 库
您可以从源代码构建 wasm-pack,但指示 Rust OpenSSL 绑定查找预编译的 OpenSSL。
如果您还没有,请下载并安装 vcpkg,我们将使用它来安装 OpenSSL:
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
然后使用vcpkg安装OpenSSL:
vcpkg install openssl:x64-windows-static-md
(如果这不起作用,请尝试 vcpkg install openssl:x64-windows
。)
然后尝试编译 wasm-pack。设置 VCPKG_ROOT
告诉 Rust OpenSSL 构建脚本去哪里查找,同时设置 OPENSSL_NO_VENDOR=1
阻止构建脚本从源代码编译 OpenSSL。
set VCPKG_ROOT=c:\path\to\vcpkg\installation
set OPENSSL_NO_VENDOR=1
cargo install wasm-pack
修复步骤 #1:在 Windows.
上使用预编译的 wasm-pack 二进制文件
如果你不想编译 wasm-pack 或 OpenSSL,你可以使用 Windows 安装程序 (wasm-pack-init.exe)在 rustwasm downloads page. Alternatively, you could also run your wasm-pack builds in Windows Subsystem for Linux (WSL).
当我 运行 cargo install wasm-pack
在 windows 10 64 位上我得到这个错误:
error: failed to run custom build command for `openssl-sys v0.9.65`
Caused by:
process didn't exit successfully: `C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz\release\build\openssl-sys-932395a164949059\build-script-main` (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR
X86_64_PC_WINDOWS_MSVC_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
openssl-src: Enable the assembly language routines in building OpenSSL.
running "perl" "./Configure" "--prefix=C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz\release\build\openssl-sys-a51d272dcebf1fc5\out\openssl-build\install" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-engine" "VC-WIN64A"
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "Det går inte att hitta filen." }', C:\Users\vilgo\.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-src-111.15.0+1.1.1k\src\lib.rs:469:39
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `wasm-pack v0.10.0`, intermediate artifacts can be found at `C:\Users\vilgo\AppData\Local\Temp\cargo-install2J8ZNz`
Caused by:
build failed
我该如何解决? 我 运行 它在常规 cmd 中。
确保您已经安装了Open SSL 的开发包。
例如,Ubuntu 上的 libssl-dev
或 Fedora 上的 openssl-devel
。如果 OpenSSL 已经安装并且 crate 仍然无法找到它,您可以设置 OPENSSL_DIR
环境变量来指定 Open SSL 安装路径。如果您使用 windows,您可以使用 Win32/Win64 OpenSSL Installation Project 在 windows.
问题
我认为你的问题发生是因为所有这三件事都发生了:
- 您可能启动了 wasm-pack 构建 from an msys shell。
- wasm-pack 依赖于 Rust 的 OpenSSL 绑定,它默认尝试通过源构建 OpenSSL。
- OpenSSL 的构建脚本是用 Perl 编写的。 msys Perl 不会创建以
\
作为目录分隔符的 Windows 路径,这会导致 OpenSSL 构建失败。
解决方案
这三个解决方案中的任何一个 都应该可以解决您的问题:
修复步骤 #3:使用本机 Windows Perl
编译 OpenSSL确保您的默认 Perl 安装是“原生”Windows Perl,例如 Strawberry Perl。确保您的构建环境没有默认为 msys perl。然后,重新尝试从源代码编译 wasm-pack 和 OpenSSL。
修复步骤 #2:使用预编译的 OpenSSL 库
您可以从源代码构建 wasm-pack,但指示 Rust OpenSSL 绑定查找预编译的 OpenSSL。
如果您还没有,请下载并安装 vcpkg,我们将使用它来安装 OpenSSL:
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
然后使用vcpkg安装OpenSSL:
vcpkg install openssl:x64-windows-static-md
(如果这不起作用,请尝试 vcpkg install openssl:x64-windows
。)
然后尝试编译 wasm-pack。设置 VCPKG_ROOT
告诉 Rust OpenSSL 构建脚本去哪里查找,同时设置 OPENSSL_NO_VENDOR=1
阻止构建脚本从源代码编译 OpenSSL。
set VCPKG_ROOT=c:\path\to\vcpkg\installation
set OPENSSL_NO_VENDOR=1
cargo install wasm-pack
修复步骤 #1:在 Windows.
上使用预编译的 wasm-pack 二进制文件如果你不想编译 wasm-pack 或 OpenSSL,你可以使用 Windows 安装程序 (wasm-pack-init.exe)在 rustwasm downloads page. Alternatively, you could also run your wasm-pack builds in Windows Subsystem for Linux (WSL).