J'essaie un exemple simple pour appeler une fonction C compilée en .wasm avec JavaScript.Comment charger des fichiers .wasm stockés dans un sous-répertoire?
Ce fichier est le counter.c
:
#include <emscripten.h>
int counter = 100;
EMSCRIPTEN_KEEPALIVE
int count() {
counter += 1;
return counter;
}
Je l'ai compilé en utilisant emcc counter.c -s WASM=1 -o counter.js
.
Mon fichier main.js
JavaScript:
Module['onRuntimeInitialized'] = onRuntimeInitialized;
const count = Module.cwrap('count ', 'number');
function onRuntimeInitialized() {
console.log(count());
}
Mes fichiers index.html
charge uniquement les fichiers .js dans le corps, rien d'autre:
<script type="text/javascript" src="counter.js"></script>
<script type="text/javascript" src="main.js"></script>
Il fonctionne très bien/impressions 101 à la console, mais lorsque je déplace le fichier counter.c
dans un sous-répertoire wasm
, le recompiler avec emscripten et mettre à jour le tag script
à src="wasm/counter.js"
, le script counter.js
tente de charger counter.wasm
à partir du répertoire racine au lieu du sous-répertoire wasm
et je reçois l'erreur:
counter.js:190 failed to asynchronously prepare wasm: failed to load wasm binary file at 'counter.wasm'
Je l'ai fait quelques recherches, mais je ne trouve pas une façon de dire emscripten à laissez le fichier .js généré charger le .wasm à partir du même sous-répertoire.