Emscripten是基於LLVM / Clang的編譯器,用來将C和C++源代码编译为WebAssembly 。在WebAssembly於2017年出現以前,JavaScript的子集asm.js曾是編譯目標
Emscripten 允许預先编译用 C 或 C++ 编写的应用程序和库以在網頁瀏覽器中運行,絕大多數的情況下運行速度與直譯(或即時編譯)的 JavaScript 相同或更快。Emscripten 甚至可以模拟整个POSIX操作系统,使程序员能够使用C標準函式庫(libc) 中的函数。
随着WebAssembly的接口(,WASI)和运行时系统(例如Node.js、Wasmtime和Wasmer)上的WebAssembly的開發進展,Emscripten也可编译成在網頁以外的地方使用的WebAssembly 。
用途
Emscripten 已讓许多 C/C++ 代码库順利移植到WebAssembly,包括Unreal Engine 3、SQLite 、 MeshLab 、 Bulletphysical 。 AutoCAD 、Qt 应用程序框架的子集等等。通过 Emscripten 順利移植到 WebAssembly 的其他软件範例包括:
游戏引擎
Unity、Godot和Unreal游戏引擎利用Emscripten提供了HTML5的导出选项。
框架和工具包
通过 Emscripten 将本机 C++ 应用程序导出成 HTML5。emscripten-qt允许将使用Qt 应用程序框架编写的应用程序编译为WebAssembly。
參見
- asm.js
- Google Native Client (PNaCl)
- Haxe
- WebAssembly
參考文獻
外部链接
*
*
- [https://emscripten.org/docs/ Emscripten文檔]
- [https://github.com/emscripten-core/emscripten/wiki/Porting-Examples-and-Demos 接口使用範例與演示]
- [https://github.com/appcypher/awesome-wasm-runtimes 部分WebAssembly运行时的列表]
评论 (0)