このサンプルコードを錆から wasmにコンパイルしようとしています。エクセルファイルの作成・書き込みができる錆びたクレートです。を使用して正常に実行できましたcargo run
。
残念ながら、それを Web アセンブリにコンパイルしようとすると、bzip2-sys (錆びたクレート) の<stdlib.h>
コンパイル中に、一般的な C ライブラリである library が見つからないというエラーが発生します。
最初にコンパイルしようとしたとき、ここから行ったclang (Windows(64ビットおよび32ビット)用のビルド済みバイナリ)をインストールするように求めC:\Program Files\LLVM\bin
られ、システムのPath環境変数に含めました。MinGW-w64 と、Visual C++ ビルド ツールを備えた Visual Studio 2017 もインストールしています。
以下の Visual Studio Code で生成されたエラー全体を確認できます。
PS C:\Users\User\Desktop\excel-test> wasm-pack build
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
Compiling libc v0.2.71
Compiling pkg-config v0.3.17
Compiling cc v1.0.54
Compiling crc32fast v1.2.0
Compiling cfg-if v0.1.10
Compiling adler32 v1.0.4
Compiling podio v0.1.7
Compiling miniz_oxide v0.3.6
Compiling time v0.1.43
Compiling flate2 v1.0.14
Compiling bzip2-sys v0.1.9+1.0.8
error: failed to run custom build command for `bzip2-sys v0.1.9+1.0.8`
Caused by:
process didnt exit successfully: `C:\Users\User\Desktop\excel-test\target\release\build\bzip2-sys-aa88969feaab6a44\build-script-build` (exit code: 1)
--- stdout
TARGET = Some("wasm32-unknown-unknown")
OPT_LEVEL = Some("3")
HOST = Some("x86_64-pc-windows-msvc")
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: "clang" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "--target=wasm32-unknown-unknown" "-I" "bzip2-1.0.8" "-D_FILE_OFFSET_BITS=64" "-DBZ_NO_STDIO" "-o" "C:\\Users\\User\\Desktop\\excel-test\\target\\wasm32-unknown-unknown\\release\\build\\bzip2-sys-03c492d40657ce9f\\out\\lib\\bzip2-1.0.8/blocksort.o" "-c" "bzip2-1.0.8/blocksort.c"
cargo:warning=In file included from bzip2-1.0.8/blocksort.c:22:
cargo:warning=bzip2-1.0.8/bzlib_private.h:25:10: fatal error: 'stdlib.h' file not found
cargo:warning=#include <stdlib.h>
cargo:warning= ^~~~~~~~~~
cargo:warning=1 error generated.
exit code: 1
--- stderr
error occurred: Command "clang" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "--target=wasm32-unknown-unknown" "-I" "bzip2-1.0.8" "-D_FILE_OFFSET_BITS=64" "-DBZ_NO_STDIO" "-o" "C:\\Users\\User\\Desktop\\excel-test\\target\\wasm32-unknown-unknown\\release\\build\\bzip2-sys-03c492d40657ce9f\\out\\lib\\bzip2-1.0.8/blocksort.o" "-c" "bzip2-1.0.8/blocksort.c" with args "clang" did not execute successfully (status code exit code: 1).
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"
PS C:\Users\User\Desktop\excel-test>