WebAssembly和Emscripten工作整理

写在前面

之前做过一段时间的WebAssembly的研究,写过几个WebAssembly Demo,并且阅读并翻译了很多篇Emscripten官方文档,今天对这些东西做一个总结。
主要是以链接形式提供,并附上简短的说明。

WebAssembly方面

1.WebAssembly入门

这是一篇对WebAssembly进行概括介绍的文章。里面也有demo。

链接: https://cunzaizhuyi.github.io/webassembly/

2.WebAssembly API及调用过程图示

为了搞清楚WebAssembly的几个Web API而画的一个典型的使用JS调用wasm模块所涉及的API。

图片链接:https://github.com/cunzaizhuyi/photos/blob/master/WebAssembly/seq.png?raw=true

3.WebAssembly的CanvasDemo

介绍了一个基于canvas的圆球随机运动小demo。

文章链接:https://cunzaizhuyi.github.io/WebAssemblyCanvasDemo/

Demo链接:https://github.com/cunzaizhuyi/wasm-canvasDemo

Emscripten官方文档翻译

1.Emscripten入门指导

是对这个Emscripten项目的教学型介绍,原文在get started目录下。

链接: https://segmentfault.com/a/1190000011328496

2.emcc编译工具使用

如何使用emcc工具将c/c++代码编译为wasm供js调用,从而生成web程序?如何使用emcc工具将c/c++代码直接编译为asm,从而生成web程序?以上两个问题的答案,要在emcc编译命令的介绍里面去搜寻。

链接:https://segmentfault.com/a/1190000011335568

3.代码可移植性与限制

介绍将C/C++代码编译为wasm的过程中,有哪部分C/C++代码不能被编译、哪种代码能编译但是效率很低、哪种代码可以通过转化代码写法从而进行编译等。

链接:https://cunzaizhuyi.github.io/em-port-one/

4.Emscripten运行时环境

因为c/c++运行时环境与web程序运行时环境不同,因此一个Emscripten程序如果将来想要能够被编译成web程序,它就要对自身的运行时环境进行改造,填平、处理掉这些差异。

链接:https://cunzaizhuyi.github.io/em-port-RuntimeEnv-two/

5.连接C程序和JavaScript代码

实际上你可以将Emscripten看成一个js API 和c、C++ sdk 优化子集,即它自己是一套完整的东西。从这个思路出发,说到c和js的代码交互,C里面怎么调用js,js里面又怎么调c,不过就是怎么用好emscripten sdk的问题,这么说好理解一点。

链接1:https://cunzaizhuyi.github.io/em-port-codeinteract-three/

链接2:https://cunzaizhuyi.github.io/em-port-embind-three/

6.文件和文件系统

根据上一个链接的说法,这部分其实就是介绍了Emscripten项目的文件系统和c/c++的不同,为啥要有这些不同(因为要适应web环境),然后你怎么用我Emscripten的sdk中涉及文件系统的API等。

链接:https://cunzaizhuyi.github.io/em-port-filesystem-four/

7.对opengl的支持

介绍了Emscripten项目能够支持的OpenGL的版本与支持程度。

链接:https://segmentfault.com/a/1190000011438279

8.调试代码

Emscripten提供了好几种调试方式

链接:https://cunzaizhuyi.github.io/em-port-debug-six/

9.优化代码

其实也算emcc编译工具使用教程之一,它集中在讲解哪些emcc命令是与优化代码质量、大小有关的。

链接:https://cunzaizhuyi.github.io/emcscripten-Optimizing-Code/

总结

以上链接也可以去segmentfault的专栏阅读。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值