Emscripten
主项目页面: http://emscripten.org
Emscripten 是一个 LLVM 到 JavaScript 的编译器。使用Emscripten,您可以:
- 将 C 和 C++ 代码编译成 JavaScript
- 将可以翻译为 LLVM 位代码的任何其他代码编译为 JavaScript。
- 将其他语言的 C/C++ 运行时编译为 JavaScript,然后以间接方式以这些其他语言运行代码(这已在 Python 和 Lua 中完成)!
Emscripten 使用 LLVM 和 Binaryen 将 C 和 C++ 编译为 WebAssembly。 Emscripten 输出可以在 Web、Node.js 和 wasm 运行时 中运行。
Emscripten 为流行的可移植 API(例如 OpenGL 和 SDL2)提供 Web 支持,从而允许移植复杂的图形化本地应用程序,例如 Unity 游戏引擎和 Google Earth。 它也可以移植您的代码库!
尽管 Emscripten 主要致力于使用 Clang 编译 C 和 C++,但它可以与其他使用 LLVM 的编译器集成(例如,Rust 已经通过 wasm32-unknown-emscripten 和 asmjs-unknown-emscripten targets 实现 Emscripten 集成)。
许可证
Emscripten 有两种许可证,MIT许可证和 Illinois/NCSA 开源许可证。
两者都是开放源码许可,几乎没有任何实际区别。
提供这两种许可证的原因是:(1)MIT的许可证是众所周知的,而(2)伊利诺斯州大学的开源许可证(Illinois/NCSA)允许 Emscripten 的代码在上游集成到 LLVM 中,如果有机会的话,LLVM 将使用该许可证
有关许可证的完整内容,请参阅 LICENSE 。