При компиляции со следующими параметрами
emcc -s WASM=1 main.cpp -o index.js
emscripten генерирует index.wasm
и js оболочку index.js
. Обертка js загружает файл .wasm
, расположенный в том же каталоге, используя XMLHttpRequest
при запуске в браузере.
Итак, что мне делать, если мне нужно загрузить файл .wasm
вручную? Часть загрузки кажется жестко запрограммированной в оболочке.
Вот некоторые обстоятельства, когда мне это нужно:
- Мне нужно обслуживать файл
.wasm
с другого URL-адреса (например, из CDN). - URL для загрузки файла
.wasm
создается динамически. - Код работает в песочнице, где
XMLHttpRequest
не допускается, есть только API, например getMyData('some_file')
. - I нужно встроить все файлы как строку base64.
Я знаю, что могу сгенерировать только файл .wasm
,
emcc -s WASM=1 main.cpp -o index.wasm
Но тогда я теряет оболочку, что нетривиально при использовании некоторых API-интерфейсов emscripten, таких как SDL и GLES.