|
|
@@ -1,3 +1,30 @@
|
|
|
# c2wasm
|
|
|
|
|
|
-测试 ems工具
|
|
|
+测试 ems工具
|
|
|
+
|
|
|
+https://zhuanlan.zhihu.com/p/355426533
|
|
|
+
|
|
|
+## 编译成js
|
|
|
+```
|
|
|
+1. emcc hello.cpp -s WASM=1 -O3 -o out/hello-emcc.js
|
|
|
+
|
|
|
+emcc 代表 Emscripten 编译器;
|
|
|
+hello.cpp 包含 C/C++ 代码的源文件;
|
|
|
+-s WASM=1 指定使用 WebAssembly;
|
|
|
+-O3 代码优化级别;
|
|
|
+-o out/hello-emcc.js 指定生成包含 wasm 模块所需的全部胶接代码的 JS 文件;
|
|
|
+```
|
|
|
+
|
|
|
+## 编译成wasm
|
|
|
+```
|
|
|
+1. emcc hello.cpp -s WASM=1 -O3 -o out/hello-emcc-need-loadjs.wasm
|
|
|
+
|
|
|
+在 out 目录你会发现只生成了 wasm 文件,并没有 js,经过查阅文档发现,上面这个命令隐含了 -s STANDALONE_WASM 的配置 ,实际上触发的是 WebAssembly Standalone build,需要自己写 loader 加载和执行(为了方便会主要采用第一种方式生成,稍后会写一个简单的 loadjs 栗子验证这中编译方式)
|
|
|
+```
|
|
|
+
|
|
|
+## 编译整套html
|
|
|
+```
|
|
|
+1. emcc hello.cpp -s WASM=1 -O3 -o out/hello-emcc.html
|
|
|
+会生成一个 html 文件和对应的 js 文件以及 wasm 文件,html 需要在 web 服务器中打开,这里具体怎么搭建 web 服务以及如何校验,在这里就不做过多解释,我们主要还是讲一些基础操作,如图,就是通过生成 html 得到的结果。
|
|
|
+```
|
|
|
+
|