Emscripten是基於LLVM / Clang的編譯器,用來將C和C++源代碼編譯為WebAssembly [3]。在WebAssembly於2017年出現以前,JavaScript的子集asm.js曾是編譯目標 [4]
Emscripten 允許預先編譯用 C 或 C++ 編寫的應用程序和庫以在網頁瀏覽器中運行,絕大多數的情況下運行速度與直譯(或即時編譯)的 JavaScript 相同或更快。Emscripten 甚至可以模擬整個POSIX操作系統,使程序員能夠使用C標準函式庫(libc) 中的函數。 [5]
隨着WebAssembly的接口(英語:WebAssembly System Interface,WASI)[6]和運行時系統(例如Node.js、Wasmtime[7]和Wasmer[8])上的WebAssembly的開發進展,Emscripten也可編譯成在網頁以外的地方使用的WebAssembly 。
用途
Emscripten 已讓許多 C/C++ 代碼庫順利移植到WebAssembly,包括Unreal Engine 3、SQLite 、 [9] MeshLab 、 [10] Bulletphysical 。 [11] AutoCAD [12]、Qt 應用程序框架的子集等等。[13]通過 Emscripten 順利移植到 WebAssembly 的其他軟件範例包括:
Unity、Godot和Unreal遊戲引擎利用Emscripten提供了HTML5的導出選項。 [14] [15] [16]
openFrameworks 通過 Emscripten 將本機 C++ 應用程序導出成 HTML5。[17]emscripten-qt允許將使用Qt 應用程序框架編寫的應用程序編譯為WebAssembly。[13]
2014年12月,互聯網檔案館推出了用Emscripten編譯的DOSBox模擬器,提供數千個基於瀏覽器的存檔的MS-DOS和PC程序。[18] [19] [20]
參見
- asm.js
- Google Native Client (PNaCl)
- Haxe
- WebAssembly
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.