Open3
Rustのcrate aws-lc-sys/aws-lc-sysビルドエラー時の対応
aws-lc-sysとは?
Rustのcrateに、aws-lc-rs というものがある。
この中に含まれるモジュール群に、aws-lc-sys がある。
Rustのtls実装である"rustls" が、ver0.23から、
依存していたcryptoモジュールが、今まで使われていたringの代わりにaws-lc-rsに変更になった。
aws-lc-rsのビルド時の注意は?
上記rustlsのリリースノートにも記載があるように、
すべてのプラットフォームの cmake や Windows の nasm などのビルド時ツールの要件に影響を与えることに注意してください。
ということ。
公式にビルド要件が記載されているので、プラットフォーム別に必要な対応をしておく
Linuxの場合
C/C++ Compiler、CMake、LLVM (When building with bindgen feature)を入れておく。
Debianにて
上記対応をしても、Linuxでエラーが出ているので調査
$ cargo build --release --target x86_64-unknown-linux-musl
error: failed to run custom build command for `aws-lc-sys v0.13.2`
Caused by:
process didn't exit successfully: `/home/xxxxxxxxxxxx/Project/cert_manager_client/target/release/build/aws-lc-sys-63a2f4015b27b4a7/build-script-main` (exit status: 101)
--- stdout
cargo:rustc-cfg=use_bindgen_generated
--- stderr
thread 'main' panicked at /home/xxxxxxxxxxxx/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.2/builder/main.rs:286:5:
aws-lc-sys build failed. Please enable the 'bindgen' feature on aws-lc-rs or aws-lc-sys
stack backtrace:
0: rust_begin_unwind
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:647:5
1: core::panicking::panic_fmt
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panicking.rs:72:14
2: build_script_main::main
at ./builder/main.rs:286:5
3: core::ops::function::FnOnce::call_once
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...
crateをupdateしたら、cargo buildで治った
cargo update
※ cargo zigbuildだと別のエラーで引っかかったので・・・動作確認できず。。。
$ cargo zigbuild --release --target x86_64-unknown-linux-musl
error: failed to run custom build command for `psm v0.1.21`
Windowsにて
visual studio2022、cmakeをインストールしていても以下のエラーが出た
CMake Error at CMakeLists.txt:6 (project):
Generator
Visual Studio 17 2022
could not find any instance of Visual Studio.
chatGPTに聞いてみると、
とのこと。
visual studioのインストーラを立ち上げ、
最新のc++デスクトップ環境などを再度インストールしてみる
→再起動してビルドしたが、エラー解消せず。
今度は、エラーメッセージにNASMが入ってないとのメッセージが。
CMake Error at aws-lc/crypto/CMakeLists.txt:72 (enable_language):
No CMAKE_ASM_NASM_COMPILER could be found.
windowsの最新WASMインストーラをここからダウンロードしてインストール
環境変数PATHに、nasm.exeのインストールフォルダを追加
→解決しました。