問題タブ [emcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emscripten - WebAssembly LinkError: _sprintf 関数のインポートには呼び出し可能オブジェクトが必要です
sprintfへの呼び出しを含む Emscripten でコンパイルされた WASM から JS でWebAssembly.Instanceを作成すると、次のエラーが発生します。
キャッチされていない (約束) LinkError: WebAssembly.Instance(): インポート #1 module="env" function=" _sprintf " エラー: 関数のインポートには呼び出し可能なものが必要です...
sprintfはlibc の一部としてEmscripten に含まれていませんか?
コード:
コンパイル コマンド:
emccコンパイルはエラーなしで実行されます。
sprintf行をコメントアウトすると、期待どおり 0 を返すエラーなしで実行されます。
このエラーの理由は何ですか?また、sprintf を使用する場合に回避するにはどうすればよいですか?
c - emscripten を使用した共有メモリ ('sys/shm.h')
「sys/shm.h」を使用するいくつかの基本的な wasm の例をコンパイルしようとして、emscripten を調査してきました。
コンパイルしようとしているコードは次のとおりです。
ここに私のコンパイル出力があります:
emscripten には共有メモリのサポートがあると思いますが、wasm-ld
正しくリンクできません。誰でも助けることができますか?
ありがとう、ギャル
c++ - Webassembly - コード バッファをコンパイルし、C を介して EM_JS 経由で実行しようとしています。
私は WebAssembly を試していて、C で素数をブルート フォースするおもちゃのモジュールを作成しました。
}
これを Windows で emcc /O3 を使用してコンパイルすると、次のバイト ストリームが得られます。
おそらくほとんどの人には理解できないでしょうが、VSC の WASM to WAT ツールは、これが次の WASM を表していることを示唆しています。
別のプログラムから、次の EM_JS が呼び出されます。これは、WASM からの意図であり、javascript エンジンに WASM をコンパイルして実行するように指示します。
次のエラーが表示されます。
これでどこに行くべきか完全にはわかりません。ほとんどの場合、WebAssembly の制限を試しているだけです。
makefile - clang/emcc を使用して OpenBLAS を Webassembly にコンパイルしようとした人はいますか?
emcc sdk がすでにロードされている Linux システムの OpenBLAS ルート ディレクトリ (emsdk ディレクトリ内source ./emsdk_env.sh
)
emcc を使用して で OpenBLAS をコンパイルしようとしました
make CC=emcc NOFORTRAN=1 HOSTCC=emcc BINARY=64 libs
が、cpuid.S について不平を言いました。
アセンブリ ファイルだとわかったので、代わりに clang: も使用してみました
make CC="clang --target=wasm32" NOFORTRAN=1 HOSTCC=clang BINARY=64 libs
。次に、次のエラーが表示されました。
致命的なエラー:バックエンドのエラー: 64 ビット WebAssembly (wasm64) は現在サポートされていません。
これは、OpenBLAS を使用して、Webassembly x64 を使用するための静的リンク用の .a lib を作成できないということですか? 同様の使用法で運が良かった人はいますか?前もって感謝します!
私は、clang バージョン 10.0.0、emcc バージョン 1.39.13、および openBLAS 最新コード (0.3.9.dev.a) を使用しています。
opengl-es - emscripten で「#version 300 es」を使用すると「unsupported shader version」と表示されるのはなぜですか?
#version 300 es
最新の emscripten 1.39 で頂点シェーダーを使用すると、「サポートされていないシェーダー バージョン」というエラー メッセージが表示される理由がわかりません。それは正常に#version 100
動作します。
私が使用するビルドについてemcc -s main.cpp -o index.html --shell-file shell.html -s USE_SDL=2 -s FULL_ES3=1
メッセージ:
私が間違っていることは何ですか?