c++ - 如何将 WebAssembly 编译为常规程序集/本机代码(或 Cpp 等)?
问题描述
有很多关于从 C++ 或 Rust 等语言编译到WebAssembly 的信息,Fe 有很多关于 LLVM 到 Wasm 的搜索结果,但是 WASM 到 LLVM 呢?
但是有没有办法从WebAssembly 编译为常规程序集(或其他“本机”语言,如 C++ 或 ASM)?
请注意,这不是如何将 javascript 转换为 LLVM IR?. 这个问题不是关于将 JavaScript 转换为本机代码,而是关于将 WebAssembly 转换为本机代码(fe 本机机器代码)。JavaScript 和 WebAssembly 是不同的东西。
解决方案
现有的实验设施很少。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
推荐阅读
- android - Android自定义视图将属性传递给子视图?
- headless-browser - 我可以以及如何使用无头 chrome 来获取网页的完整尺寸吗?
- reporting - 列出事件跟踪 Analytics Reporting API v4
- android - Android 设备的“外部存储”和“内部存储”是什么意思
- python - 如何在python中正确打开文件并打印出文本内容
- java - 放心获得 SSL 错误
- javascript - Javascript,用正则表达式替换,这种情况可能吗?
- c# - 如何使用c#删除动态crm中的帐户?
- reactjs - 当我单击按钮时,如果“isAuth”为“true”,我想从“登录”重定向到“仪表板”,但页面不重定向?
- java - 翻译动作
从 C# 到 Java