简体   繁体   English

Rust web 组件无法构建并出现 openssl 错误

[英]Rust web assembly fails to build with openssl error

I am fairly new to rust and I build a web assembly project using it, am using openssl package in the project.我对 rust 相当陌生,我使用它构建了一个 web 装配项目,我在项目中使用 openssl ZEFE90A8E604A7C8B70E88。 Now the problem comes when I want to build the app, it fails with the following output:现在问题来了,当我想构建应用程序时,它失败了,出现以下 output:

[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
   Compiling openssl-sys v0.9.58
error: failed to run custom build command for `openssl-sys v0.9.58`

Caused by:
  process didn't exit successfully: `/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/release/build/openssl-sys-815e530f9615c049/build-script-main` (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=WASM32_UNKNOWN_UNKNOWN_OPENSSL_NO_VENDOR
WASM32_UNKNOWN_UNKNOWN_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
CC_wasm32-unknown-unknown = None
CC_wasm32_unknown_unknown = None
TARGET_CC = None
CC = None
CFLAGS_wasm32-unknown-unknown = None
CFLAGS_wasm32_unknown_unknown = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
running "perl" "./Configure" "--prefix=/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install" "no-dso" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-shared" "gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "--target=wasm32-unknown-unknown"
Configuring OpenSSL version 1.1.1g (0x1010107fL) for gcc
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile

The library could not be configured for supporting multi-threaded
applications as the compiler options required on this system are not known.
See file INSTALL for details if you need multi-threading.

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
running "make" "depend"
running "make" "build_libs"
/usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
    "-oMakefile" include/crypto/bn_conf.h.in > include/crypto/bn_conf.h
/usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
    "-oMakefile" include/crypto/dso_conf.h.in > include/crypto/dso_conf.h
/usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
    "-oMakefile" include/openssl/opensslconf.h.in > include/openssl/opensslconf.h
make depend && make _build_libs
make[1]: Entering directory '/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/build/src'
make[1]: Leaving directory '/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/build/src'
make[1]: Entering directory '/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/build/src'
clang  -I. -Iinclude  -O3 -O2 -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown -DOPENSSLDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/ssl\"" -DENGINESDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/lib/engines-1.1\"" -DNDEBUG   -c -o apps/app_rand.o apps/app_rand.c
clang  -I. -Iinclude  -O3 -O2 -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown -DOPENSSLDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/ssl\"" -DENGINESDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/lib/engines-1.1\"" -DNDEBUG   -c -o apps/apps.o apps/apps.c
clang  -I. -Iinclude  -O3 -O2 -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown -DOPENSSLDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/ssl\"" -DENGINESDIR="\"/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/install/lib/engines-1.1\"" -DNDEBUG   -c -o apps/bf_prefix.o apps/bf_prefix.c
make[1]: Leaving directory '/home/hamisi/Projects/payment-gateway/checkout/web/payload-formatter-wasm/target/wasm32-unknown-unknown/release/build/openssl-sys-881fa1458604c2ea/out/openssl-build/build/src'

--- stderr
/bin/sh: 1: clang: not found
make[1]: *** [Makefile:672: apps/app_rand.o] Error 127
make[1]: *** Waiting for unfinished jobs....
/bin/sh: 1: clang: not found
make[1]: *** [Makefile:674: apps/apps.o] Error 127
/bin/sh: 1: clang: not found
make[1]: *** [Makefile:676: apps/bf_prefix.o] Error 127
make: *** [Makefile:175: build_libs] Error 2
thread 'main' panicked at '


Error building OpenSSL:
    Command: "make" "build_libs"
    Exit status: exit code: 2


    ', /home/hamisi/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-src-111.10.0+1.1.1g/src/lib.rs:386:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Error: Compiling your crate to WebAssembly failed
Caused by: failed to execute `cargo build`: exited with exit code: 101
  full command: "cargo" "build" "--lib" "--release" "--target" "wasm32-unknown-unknown"

I have tried every solution in the internet, installed libssldev , pkg-config , I also reinstalled openssl in my machine several times, still no fruits.我已经尝试了互联网上的所有解决方案,安装了libssldevpkg-config ,我还在我的机器上重新安装openssl几次,仍然没有结果。 I have debugged this for hours without any success.我已经调试了几个小时没有任何成功。

The following is my Cargo.toml content dependencies section以下是我的Cargo.toml内容依赖部分

[dependencies]
wasm-bindgen = "0.2.63"
openssl-sys = "0.9"
openssl = { version = "0.10", features = ["vendored"] }
base64 = "0.12.1"

and am using ubuntu 20.04 .我正在使用ubuntu 20.04 Any help would be highly appreciated as am running out of time with this, thanks in advance.任何帮助将不胜感激,因为我已经没有时间了,在此先感谢。

openssl version outputs OpenSSL 1.1.1g 21 Apr 2020 openssl version输出OpenSSL 1.1.1g 21 Apr 2020

Also let me know when you need any more information.当您需要更多信息时,请告诉我。

According to rustwasm/wasm-bindgen, openssl crate does not support WebAssembly根据 rustwasm/wasm-bindgen, openssl crate 不支持 WebAssembly

This is actually an error reported by the openssl-sys build script and that's because the openssl crate doesn't have support for WebAssembly yet (I'm not sure that OpenSSL itself even does...).这实际上是 openssl-sys 构建脚本报告的错误,这是因为 openssl 板条箱尚不支持 WebAssembly(我不确定 OpenSSL 本身是否支持...)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 macos 中为 linux 构建 Rust 时出错 - Openssl - Error build Rust for linux in macos - Openssl Web 组装和 Rust:货物构建与 wasm-pack - Web Assembly and Rust: cargo build vs wasm-pack 错误:无法使用 Rust/Anchor 为 `openssl-sys v0.9.72` 运行自定义构建命令 - error: failed to run custom build command for `openssl-sys v0.9.72` using Rust/Anchor 在Rust Web程序集中访问UInt8ClampedArray - Accessing UInt8ClampedArray in Rust web assembly 无法使用 web-assembly rust impl,因为“初始化前无法访问‘__wbindgen_throw’”错误 - Can not use web-assembly rust impl because of 'Cannot access '__wbindgen_throw' before initialization' error Rust - 生成 shell 失败并出现错误 - Rust - spawning a shell fails with an error Rust 在 Inte.net Computer canister 上构建失败:版本脚本中的语法错误,与 cc 链接失败退出状态:1 - Rust build fails on Internet Computer canister: syntax error in version script, linking with cc failed exit status: 1 如何修复 Terra Rust 智能合约 OpenSSL 错误 - How to fix Terra Rust Smart Contract OpenSSL Error 在 Linux 上安装 Rust 失败并出现错误“OS 21” - Rust installation fails on Linux with error "OS 21" Rust:相同的代码编译时出现警告或失败并出现错误 - Rust: the same code compiles with warning or fails with error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM