使用emscripten编译WebAssembly
需要编译的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相关推荐
- 安装Emscripten编译环境
安装Emscripten编译环境 1.各类安装工具让它一键安装 $ sudo apt update $ sudo apt install vim openssh-server git curl wge ...
- Ubuntu16.04手工搭建emscripten编译环境
https://blog.csdn.net/fanxingzju/article/details/80488788 https://blog.csdn.net/weixin_30872733/arti ...
- 基础为零?如何将 C++ 编译成 WebAssembly
作者| 张翰(门柳) 出品|阿里巴巴新零售淘系技术部 本文知识点提炼: 1.如何使用 Emscripten 把 C++ 编译成 wasm. 2.如何使用 wasi-sdk 把 C++ 编译成 wasm ...
- WebAssembly运行时库(WASM runtime:wasmer 或 wasmtime)\将rust官方demo猜数字编译为WASI目标并使用Wasmer运行
文章目录 WebAssembly运行时库(wasmer 或 wasmtime.wasmer-go) 一.引子 1. 什么是WASI 2. 有哪些优秀的 WebAssembly 运行时? 二.wasme ...
- Emscripten之编译项目
一.前言 在C项目中引入外部依赖,通常有两种方法:引入库源代码.使用静/动态库.因为Emscripten做的工作主要是将C代码编译成asm.js或者WebAssembly,所以对于Emscripten ...
- webassembly类型_WebAssembly 那些事儿
WebAssembly 那些事儿 什么是 WebAssembly? WebAssembly 是除 JavaScript 以外,另一种可以在网页中运行的编程语言,并且相比之下在某些功能和性能问题上更具优 ...
- qt webassembly 安装过程记录及注意事项
一 安装emsdk 按照Download and install - Emscripten 3.1.6-git (dev) documentation 和Qt 官网介绍Qt for WebAssemb ...
- 通过WebAssembly在移动端解码H.265
本文转自淘宝技术,文章详细介绍了如何通过WebAssembly在移动Web端实现H.265解码,既享受到了H.265更高的编码效率,又实现了在多种移动端浏览器上兼容.未来,通过WebAssembly还 ...
- WebAssembly,Web的新时代
在浏览器之争中,Chrome凭借JavaScript的卓越性能取得了市场主导地位,然而由于JavaScript的无类型特性,导致其运行时消耗大量的性能做为代价,这也是JavaScript的瓶颈之一.W ...
最新文章
- 二叉树 1.0 -- 创建二叉树、遍历二叉树、二叉树常见问题求解
- 墙面也能变镜子,只看影子就能还原视频,MIT新算法让摄像头无死角
- .NET6之MiniAPI(十八):OpenAPI swagger
- 使用Stream API的类Java产量
- 工业级光纤收发器九大技术优势介绍
- oracle必备文件,oracle初学者必备基础
- 游戏软件性能测试怎么做?常规测试知识要点总结
- solr简介——(九)
- 【报告分享】2020金融兴趣人群内容消费及理财意识洞察报告.pdf(附下载链接)...
- R语言手动安装包-以ggplot2为例
- Canvas API(画布)简介
- 手机摄影:黄埔军校旧址(下)
- excel表格内文字怎么换行_Excel | 单元格内换行与撤销换行的方法
- BBED处理RMAN-03009,ORA-1956
- demonstration记忆_记忆单词的方法
- 谷歌学术检索论文如何指定多个来源
- 《堂食点餐》APP代码前后端全部免费开源啦!
- tophat以及cufflinks的使用
- Action Chains类 使用鼠标操作使用方法
- 信任别人计算机和网络,【媒库文选】人们可能更信任计算机而不是人类
热门文章
- 【LeetCode - 634】寻找数组的错位排列
- 2017-2-1-moviesandbooks
- 基于Android的校园考勤打卡app
- 力争下游:腾讯和淘宝的站位
- Recurrent+Transformer 视频恢复领域的‘德艺双馨’
- 文件站项目docu阶段笔记---后台又java转为php
- 于佳 计算机科学技术学院,计算机科学技术学院举行“倾听-点亮未来”师生座谈会...
- Android学习之-RecyclerView带刺的玫瑰
- 为什么LR模型损失函数使用交叉熵不用均方差?
- 阿里巴巴正式开源云原生应用脚手架