「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > コンパイル時のエラーを解決する方法 WebAssembly (Wasm) に移動

コンパイル時のエラーを解決する方法 WebAssembly (Wasm) に移動

2024 年 11 月 8 日に公開
ブラウズ:702

How to Resolve Errors When Compiling Go to WebAssembly (Wasm)

WebAssembly への Golang のコンパイル (Wasm)

コマンド GOOS=js GOARCH=wasm go build を使用して Go コードを Wasm にコンパイルする場合 - o main.wasm、Wasmtime または Wasm3 の実行中にエラーが発生する可能性があります。

エラーと解決策

  • Wasmtime エラー: 不明なインポート: go: :debug

このエラーは、go::debug インポートが定義されていないことを示します。 Go コンパイラーによって生成される main.wasm ファイルは、wasm_exec.js shim で使用することを目的としています。これを修正するには、次のコマンドで Node.js を使用します:

node wasm_exec.js main.wasm
  • Wasmtime エラー: 関数検索に失敗しました ('_start) ')

このエラーはWasm3を使用しているときに発生します。代わりに、WebAssembly System Interface (WASI) をサポートする Tinygo で次のコマンドを使用してコンパイルしてみてください:

tinygo build -target=wasi -o main.wasm main.go
  • 最先端のオプション

Go は、ブラウザ外での Wasm の最先端のサポートを備えています。これを利用するには、次の手順を使用してソースから Go をコンパイルします:

  1. 次を使用してソースから最新の Go リリースをインストールします:
go install golang.org/dl/gotip@latest
gotip download
  1. Go コードを次のようにビルドします:
GOOS=wasip1 GOARCH=wasm gotip build -o main.wasm

このアプローチこれにより、追加の変更を加えずに Wasmtime を使用してプログラムを実行できるようになります。

リリースステートメント この記事は次の場所に転載されています: 1729671686 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3