资讯专栏INFORMATION COLUMN

WebAssembly和Emscripten工作整理

qieangel2013 / 2810人阅读

摘要:写在前面之前做过一段时间的的研究,写过几个,并且阅读并翻译了很多篇官方文档,今天对这些东西做一个总结。主要是以链接形式提供,并附上简短的说明。欢迎加入和技术交流群,群聊号码

写在前面

之前做过一段时间的WebAssembly的研究,写过几个WebAssembly Demo,并且阅读并翻译了很多篇Emscripten官方文档,今天对这些东西做一个总结。
如果有需要对这块知识了解的同学,就可以按照这篇文章里的资料顺序来学习。
主要是以链接形式提供,并附上简短的说明。

WebAssembly方面 1.WebAssembly入门

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

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

2.WebAssembly API及调用过程图示

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

图片链接:https://github.com/cunzaizhuy...

3.WebAssembly的CanvasDemo

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

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

Demo链接:https://github.com/cunzaizhuy...

Emscripten官方文档翻译 1.Emscripten入门指导

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

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

2.emcc编译工具使用

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

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

3.代码可移植性与限制

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

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

4.Emscripten运行时环境

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

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

5.连接C程序和JavaScript代码

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

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

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

6.文件和文件系统

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

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

7.对opengl的支持

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

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

8.调试代码

Emscripten提供了好几种调试方式

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

9.优化代码

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

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

总结

以上文章都收录在segmentfault的专栏。因为之前文章发表的时间是乱序的,所以这篇文章的主旨其实是整理一个合理的学习顺序出来。

欢迎加入Wasm和emscripten技术交流群,群聊号码:939206522

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90789.html

相关文章

  • WebAssembly起步

    摘要:解析下载后,需要引擎经过两个阶段转换成,然后再转换为浏览器需要的中间字节码。未来所有支持编译到字节码的编程语言,理论上都可以输出。 了解WebAssembly原理 WebAssembly是一种可以在浏览器上运行的二进制可执行格式文件。它将成为浏览器进化史上又一次革命。 自从浏览器问世以来,javascript就成为浏览器上执行程序的唯一标准,越来越多的应用程序通过javascript开...

    shiina 评论0 收藏0
  • WebAssembly介绍

    摘要:工作原理分点介绍官方解读它可以从各类现有的其他高级语言写的业务库编译而来,比如下文提到的库,就是一种语言编写的刚体动力学与碰撞检测计算的库。 1、WebAssembly工作原理 分点介绍 官方解读 它可以从各类现有的其他高级语言写的业务库编译而来,比如下文提到的bullet库,就是一种C++语言编写的刚体动力学与碰撞检测计算的库。根据调研,还有Haskell、Go、C#的语言的一些We...

    appetizerio 评论0 收藏0
  • Emscripten编译器安装教程,亲测成功编译出第一个WebAssembly

    摘要:如何判断环境变量是否配置成功呢可以使用命令行工具在非目录下,执行,看看结果是不是类似下面如果是,那么恭喜你已经安装成功了。 javascript 这门语言的性能无法与原生的C/C++代码相媲美,为了进一步提高网页的性能,业界推出了WebAssembly技术:将C语言编译成了浏览器可以执行的wasm文件。WebAssembly不仅提高了网页的性能,而且还可以完成原来javascript无...

    klinson 评论0 收藏0
  • WebAssembly应用到前端工程(上)—— webassembly模块的编写

    摘要:本文以这个模块的开发过程梳理如何应用到前端工程中。注使用完成开发至少需要基础的编码能力。具体其他信息可以参考上该模块的。配置主要针对源码文件,需要添加正确的进行处理。下一篇应用到前端工程下和 前言 WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine...

    Mr_houzi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<