作者回复: 可以使用,不过只能够使用没有系统调用的 Wasm 模块版本,对 wasi-libc 的支持目前还不是很完善。相比 Emscripten 来说,直接使用 LLVM 的版本会有比较多的冗余字节码,且编译流程较为复杂,比如需要使用单独的 wasm-ld 进行链接以导出 C/C++ 代码中的函数。而 Emscripten 则会帮助你简化整个编译流程到 emcc 中,同时也会自动生成可用的 JavaScript Glue 来帮助你简化 Wasm 模块的使用方式。相较之下,LLVM 就不会帮你去模拟 Web 上的 POSIX 环境了。因此诸如 fopen 这些函数在通过 LLVM 编译到 Wasm 后就无法直接在 Web 浏览器上使用了。
作者回复: 这两个都是虚拟 ISA,不跟你计算机的实际硬件结构绑定。你在编译 LLVM 的时候应该可以选择是否启用 Wasm 作为后端目标。可以参考这里:https://gist.github.com/yurydelendik/4eeff8248aeb14ce763e