要摆脱生成的JavaScript并直接执行WebAssembly,可以使用以下解决方法。
// add.c
int add(int a, int b) {
return a + b;
}
emcc add.c -o add.wasm
// main.js
(async () => {
const response = await fetch('add.wasm');
const buffer = await response.arrayBuffer();
const module = await WebAssembly.instantiate(buffer);
const instance = module.instance;
// 调用WebAssembly函数
const result = instance.exports.add(2, 3);
console.log(result); // 输出:5
})();
请确保在浏览器中加载上述JavaScript文件,并将生成的WebAssembly二进制文件(add.wasm)与其放在同一目录下。当运行该JavaScript代码时,它将加载WebAssembly模块,并直接调用WebAssembly函数来执行计算并输出结果。