WebAssembly,简称Wasm,是一个低级编程语言。WebAssembly是可移植性的抽象语法树,被设计来提供比JavaScript更快速的编译及执行。WebAssembly将让开发者能运用自己熟悉的编程语言(最初以C/C++作为实现目标)编译,再藉虚拟机引擎在浏览器内执行。 ——维基百科
本文使用Emscripten将C++编译到wasm,实现与js的交互。
安装Emscripten SDK
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install 1.39.8
emsdk-1.39.8可以用于编译Qt5.15,已经过官方测试。
激活
./emsdk activate 1.39.8
source ./emsdk_env.sh
初步尝试
- 源代码
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "'Hello World' from C++" << '\n';
}
- 编译
em++ hello.cc -s WASM=1 -o hello.js
会生成hello.js和hello.wasm。
- 运行
node hello.js
- 输出
'Hello World' from C++

Comments NOTHING