首页 > 解决方案 > 如何将 WebAssembly 编译为常规程序集/本机代码(或 Cpp 等)?

问题描述

有很多关于从 C++ 或 Rust 等语言编译WebAssembly 的信息,Fe 有很多关于 LLVM 到 Wasm 的搜索结果,但是 WASM 到 LLVM 呢?

但是有没有办法WebAssembly 编译为常规程序集(或其他“本机”语言,如 C++ 或 ASM)?

请注意,这不是如何将 javascript 转换为 LLVM IR?. 这个问题不是关于将 JavaScript 转换为本机代码,而是关于将 WebAssembly 转换为本机代码(fe 本机机器代码)。JavaScript 和 WebAssembly 是不同的东西。

标签: c++cassemblyllvmwebassembly

解决方案


现有的实验设施很少。WebAssembly的Liftoff(google V8 嵌入式)编译器必须在内部执行此任务;我不知道有任何公开的 V8 API 供应用程序用于此任务。

Lucetc说,它可以将 WebAssembly 模块(.wasm 或 .wat 文件)编译为本机代码(.o 或 .so 文件)。 https://github.com/fastly/lucet

wasm2c:说,它可以将 wasm 文件转换为 C 源和头文件 https://github.com/WebAssembly/wabt/tree/master/wasm2c


推荐阅读