是否可以在 emcc 编译的 wasm 代码中导入 Javascript 函数?

Chr*_*hoo 5 emscripten webassembly

我阅读了https://developer.mozilla.org/en-US/docs/WebAssembly/Using_the_JavaScript_API和http://webassembly.org/docs/js/,似乎我找到了从 wasm 调用 Javascript 函数的所有示例是用受 LISP 启发的语法编写的。

是否可以使用 emscripten C 在 wasm 中导入 JS 函数?

JF *_*ien 3

是的,Emscripten记录了如何做到这一点。最简单的事情就是像在 C++ 中一样声明 JS 函数extern "C"。它将位于 wasm 模块的导出中,然后您需要将其作为导入传入。

另一个例子,wasm 瀑布在 JavaScript 中构建musl,并运行一些编译为 wasm 的GCC 测试。所有 C 库函数都在 JS 中,wasm 为它们调用 JS。没什么神奇的:C 库函数只是声明为,然后作为importextern "C"传入。