需要编译的c语言demo程序add.c

#include <stdio.h>
int add(int a,int b)
{return a+b;
}
int main(void)
{printf("%d\n",add(1,2));
}

1、可以编译成带有html输出文件,可以直接打开html文件查看效果

emcc add.c -s WASM=1 -o add.html

其中-s WASM=1一定要加,否则默认生成的文件不是*.wasm而是js文件

2、大部分情况建议不输出html文件,直接生成wasm文件和js文件。生成的js文件中有调用WebAssembly的接口,我们只需要调用js文件的接口即可。

emcc add.c -s WASM=1 -s SIDE_MODULE=1 -o add.js

3、如果想自己写js调用WebAssembly,有多种方法,其中一种如下:

<script>fetch('add.wasm').then(res =>res.arrayBuffer()).then(buf => {let m_buf = new Uint8Array(buf);let api = Wasm.instantiateModule(m_buf);console.log("123+1024=",api.exports.add(123,1024));});
</script>

使用emscripten编译WebAssembly相关推荐

  1. 安装Emscripten编译环境

    安装Emscripten编译环境 1.各类安装工具让它一键安装 $ sudo apt update $ sudo apt install vim openssh-server git curl wge ...

  2. Ubuntu16.04手工搭建emscripten编译环境

    https://blog.csdn.net/fanxingzju/article/details/80488788 https://blog.csdn.net/weixin_30872733/arti ...

  3. 基础为零?如何将 C++ 编译成 WebAssembly

    作者| 张翰(门柳) 出品|阿里巴巴新零售淘系技术部 本文知识点提炼: 1.如何使用 Emscripten 把 C++ 编译成 wasm. 2.如何使用 wasi-sdk 把 C++ 编译成 wasm ...

  4. WebAssembly运行时库(WASM runtime:wasmer 或 wasmtime)\将rust官方demo猜数字编译为WASI目标并使用Wasmer运行

    文章目录 WebAssembly运行时库(wasmer 或 wasmtime.wasmer-go) 一.引子 1. 什么是WASI 2. 有哪些优秀的 WebAssembly 运行时? 二.wasme ...

  5. Emscripten之编译项目

    一.前言 在C项目中引入外部依赖,通常有两种方法:引入库源代码.使用静/动态库.因为Emscripten做的工作主要是将C代码编译成asm.js或者WebAssembly,所以对于Emscripten ...

  6. webassembly类型_WebAssembly 那些事儿

    WebAssembly 那些事儿 什么是 WebAssembly? WebAssembly 是除 JavaScript 以外,另一种可以在网页中运行的编程语言,并且相比之下在某些功能和性能问题上更具优 ...

  7. qt webassembly 安装过程记录及注意事项

    一 安装emsdk 按照Download and install - Emscripten 3.1.6-git (dev) documentation 和Qt 官网介绍Qt for WebAssemb ...

  8. 通过WebAssembly在移动端解码H.265

    本文转自淘宝技术,文章详细介绍了如何通过WebAssembly在移动Web端实现H.265解码,既享受到了H.265更高的编码效率,又实现了在多种移动端浏览器上兼容.未来,通过WebAssembly还 ...

  9. WebAssembly,Web的新时代

    在浏览器之争中,Chrome凭借JavaScript的卓越性能取得了市场主导地位,然而由于JavaScript的无类型特性,导致其运行时消耗大量的性能做为代价,这也是JavaScript的瓶颈之一.W ...

最新文章

  1. 二叉树 1.0 -- 创建二叉树、遍历二叉树、二叉树常见问题求解
  2. 墙面也能变镜子,只看影子就能还原视频,MIT新算法让摄像头无死角
  3. .NET6之MiniAPI(十八):OpenAPI swagger
  4. 使用Stream API的类Java产量
  5. 工业级光纤收发器九大技术优势介绍
  6. oracle必备文件,oracle初学者必备基础
  7. 游戏软件性能测试怎么做?常规测试知识要点总结
  8. solr简介——(九)
  9. 【报告分享】2020金融兴趣人群内容消费及理财意识洞察报告.pdf(附下载链接)...
  10. R语言手动安装包-以ggplot2为例
  11. Canvas API(画布)简介
  12. 手机摄影:黄埔军校旧址(下)
  13. excel表格内文字怎么换行_Excel | 单元格内换行与撤销换行的方法
  14. BBED处理RMAN-03009,ORA-1956
  15. demonstration记忆_记忆单词的方法
  16. 谷歌学术检索论文如何指定多个来源
  17. 《堂食点餐》APP代码前后端全部免费开源啦!
  18. tophat以及cufflinks的使用
  19. Action Chains类 使用鼠标操作使用方法
  20. 信任别人计算机和网络,【媒库文选】人们可能更信任计算机而不是人类

热门文章

  1. 【LeetCode - 634】寻找数组的错位排列
  2. 2017-2-1-moviesandbooks
  3. 基于Android的校园考勤打卡app
  4. 力争下游:腾讯和淘宝的站位
  5. Recurrent+Transformer 视频恢复领域的‘德艺双馨’
  6. 文件站项目docu阶段笔记---后台又java转为php
  7. 于佳 计算机科学技术学院,计算机科学技术学院举行“倾听-点亮未来”师生座谈会...
  8. Android学习之-RecyclerView带刺的玫瑰
  9. 为什么LR模型损失函数使用交叉熵不用均方差?
  10. 阿里巴巴正式开源云原生应用脚手架