Компилирование модуля Wasm с уровнями оптимизации 02 и 03 для загрузки в AudioWorlet? - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь скомпилировать .wasmmodule. js с дополнительной оптимизацией для запуска в AudioWorklet.

Я использую файл .post. js для добавления «модуля экспорта по умолчанию» в скомпилированный Wasm, используя флаг компиляции --post- js. Это хорошо работает с оптимизацией 01, которая является текущей конфигурацией компиляции, используемой в примерах шаблонов проектирования рабочих листов.

$(EMSCR) $(CFLAGS) --post-js $(POST_JS) -o $(OUTPUT) $(SRC_EM) $(SRC) 

CFLAGS=--bind -O1\
-s WASM=1 \
-s BINARYEN_ASYNC_COMPILATION=0 \
-s SINGLE_FILE=1 \
-s ALLOW_MEMORY_GROWTH=1 \
-s ABORTING_MALLOC=0 \
-s TOTAL_MEMORY=128Mb

У меня возникают проблемы компиляции с флагами оптимизации 02 и 03, потому что мне нужно загрузить Wasm с экспорт по умолчанию.

Если я прокомментирую этот экспорт --post. js, компиляция будет выполняться с уровнем оптимизации 02 или 03. Однако тогда мы не можем загрузить Wasm в рабочий лист, за исключением:

Например, «Ошибка при загрузке рабочего листа: SyntaxError: Запрошенный модуль» ../../build/m.wasmmodule . js 'не обеспечивает экспорт с именем' default

Я пробовал разные комбинации, но не смог преодолеть это.

Есть идеи, если есть какая-то другая конфигурация Я мог бы попробовать?

Большое спасибо

1 Ответ

1 голос
/ 23 апреля 2020

Если вы используете ESM JavaScript синтаксис import MyModule from './MyModule.js', попробуйте использовать следующие флаги Emscripten:

-s EXPORT_ES6=1 \
-s MODULARIZE=1 \
...