JS 関数を WASM に渡す
P粉081360775
P粉081360775 2024-03-29 14:26:05
0
1
332

私は WebAssembly に関する良い本を読んでおり、「グルー コード」を使用せずに JS 関数を wasm にインポートする方法を学ぼうとしています。

これは、2 つの extern 関数が宣言されている C ファイルです

リーリー

次に、次の手順を使用して、c コードを wasm にコンパイルしました。 リーリー

次に、wasm ファイルを

インスタンス化し、jsFillRect()jsClearRect() を定義し、インポートを使用してインポートする JS スクリプトを作成するように指示されました。オブジェクトをモジュールの env に追加します。 リーリー エラーを受け取りました:

リーリー

ここで示すインポートされたオブジェクトは、すでに元のオブジェクト (ここで見つけることができます) の修正バージョンです。この例では、関数は JS で

_jsClearRect()

として宣言されていますが、モジュールは jsClearRect() の定義を見つけることができません。次に、memoryBase として宣言されているため、__memory_base の定義を見つけることができませんが、Object GOT のキング表現がわかりません。 .mem いろいろ調べてみたところ、古い API を使用しているように感じましたが、これを実現する適切なソリューションが見つかりません。

それでは私の質問は次のとおりです:

Javascript 関数を wasm モジュールにインポートするにはどうすればよいですか?

P粉081360775
P粉081360775

全員に返信(1)
P粉276876663

GOT.mem​​ emscripten によって使用されるダイナミック リンク ABI から。この場合、動的にリンクされたコンテンツは必要ないと思うので、-sSIDE_MODULE を削除してもよいし、削除すべきです。

これにより、提供する必要があるインポートが簡素化/削減されます。 (たとえば、tablememory を指定する必要はありません)。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート