正在编译优化级别为02和03的Wasm模块以加载到AudioWorlet中吗?

问题描述 投票:1回答:1

我正在尝试对.wasmmodule.js进行编译,并对其进行其他优化以在AudioWorklet中运行。

我使用.post.js文件,使用--post-js编译标志将“导出默认模块”附加到已编译的Wasm中。这与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

的导出

我尝试了不同的组合,但我无法克服这一点。

是否有其他配置可以尝试的想法?

非常感谢

web-audio-api emscripten wasm-bindgen audio-worklet
1个回答
1
投票

如果您使用的是ESM JavaScript语法import MyModule from './MyModule.js',请尝试使用以下Emscripten标志:

-s EXPORT_ES6=1 \
-s MODULARIZE=1 \
© www.soinside.com 2019 - 2024. All rights reserved.