热门问题
时间线
聊天
视角
Emscripten
来自维基百科,自由的百科全书
Remove ads
Emscripten是基于LLVM / Clang的编译器,用来将C和C++源代码编译为WebAssembly [2]。在WebAssembly于2017年出现以前,JavaScript的子集asm.js曾是编译目标 [3]
Emscripten 允许预先编译用 C 或 C++ 编写的应用程序和库以在网页浏览器中运行,绝大多数的情况下运行速度与直译(或即时编译)的 JavaScript 相同或更快。Emscripten 甚至可以模拟整个POSIX操作系统,使程序员能够使用C标准函数库(libc) 中的函数。 [4]
随着WebAssembly的接口(英语:WebAssembly System Interface,WASI)[5]和运行时系统(例如Node.js、Wasmtime[6]和Wasmer[7])上的WebAssembly的开发进展,Emscripten也可编译成在网页以外的地方使用的WebAssembly 。
Remove ads
用途
Emscripten 已让许多 C/C++ 代码库顺利移植到WebAssembly,包括Unreal Engine 3、SQLite 、 [8]MeshLab 、 [9]Bulletphysical 。 [10]AutoCAD [11]、Qt 应用程序框架的子集等等。[12]通过 Emscripten 顺利移植到 WebAssembly 的其他软件示例包括:
Unity、Godot和Unreal游戏引擎利用Emscripten提供了HTML5的导出选项。 [13][14][15]
openFrameworks 通过 Emscripten 将本机 C++ 应用程序导出成 HTML5。[16]emscripten-qt允许将使用Qt 应用程序框架编写的应用程序编译为WebAssembly。[12]
2014年12月,互联网档案馆推出了用Emscripten编译的DOSBox模拟器,提供数千个基于浏览器的存档的MS-DOS和PC程序。[17][18][19]
参见
- asm.js
- Google Native Client (PNaCl)
- Haxe
- WebAssembly
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads