一篇文章全面了解WebAssembly!!!以及如何把c/c++编译成WebAssembly,并在浏览器网页中加载运行WebAssembly

WebAssembly简介

官方描述:
WebAssembly是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如C / C ++/rust/go等语言提供一个编译目标,以便它们可以在Web浏览器上运行。它被设计为可以与JavaScript共存,允许两者一起工作。

大白话:
WebAssembly是一门新的强类型编程语言,在浏览器中的有独立的虚拟机运行时。其他编程语言可以通过特定的WebAssembly编译器把源代码编译成WebAssembly的二进制字节码.wasm格式(不是机器码)。wasm格式是类似java代码编译成.class文件的中间代码,可以与js搭配和混合使用(可以在WebAssembly中调用js,同时也可以在js中调用WebAssembly)。

WebAssembly参考文档:https://developer.mozilla.org/zh-CN/docs/WebAssembly

可读文本.wat和.wasm二进制字节码补充说明

.wasm是WebAssembly二进制格式,WebAssembly工具链还有一个可读文本格式.wat或.wast。
因为.wasm本身是二进制格式,是无法看到代码或者生成的中间代码的,需要通过.wat或.wast文本格式来查看中间代码,方便调试。
使用https://github.com/webassembly/wabt可以把文本.wat转换为.wasm二进制字节码。

c/c++代码如何编译成.wasm字节码

可以使用Emscripten编译器把 c/c++代码编译成WebAssembly格式的二进制字节码
Emscripten官方:https://emscripten.org/index.html

c代码在线编译演示:https://wasdk.github.io/WasmFiddle/

如何加载和运行.wasm代码

WebAssembly目前还没有集成

你可能感兴趣的:(WebAssembly,webassembly,c编译webassembly,加载webassembly,运行webassembly)