ホームページ  >  に質問  >  本文

JS 関数を WASM に渡す

私は 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粉081360775P粉081360775204日前289

全員に返信(1)返信します

  • P粉276876663

    P粉2768766632024-03-30 09:04:48

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

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

    返事
    0
  • キャンセル返事