前言
探索wasm的功能场景。
一、环境搭建
克隆emsdk仓库
git clone https://github.com/emscripten-core/emsdk.git
切换到emsdk目录
cd emsdk
安装 SDK 工具
./emsdk install latest
最新版本
./emsdk activate latest
将相关命令行工具加入到zshrc
sudo vim /etc/zshrc
最后一行添加
source /自己文件的目录/emsdk/emsdk_env.sh
重启
sudo reboot
查看安装
emcc -v
二、简单使用
1.新建一个test.c文件
#include <stdio.h>
int main() {
FILE *file = fopen("./test.txt", "rb");
if (!file) {
printf("cannot open file\n");
return 1;
}
while (!feof(file)) {
char c = fgetc(file);
if (c != EOF) {
putchar(c);
}
}
fclose (file);
printf("\n");
return 0;
}
2.新建一个test.txt文件
开头
Hello, test.txt
文件
结尾
执行编译
emcc test.c -o test.html --preload-file test.txt
编译后生成的文件
test.data
test.html
test.js
test.wasm
将上面生成的四个文件放到webserver目录下进行访问。
可以看见打印出test.txt里面的文本。
默认编译(默认为 -O1)出来的 wasm 是没有进行优化的。
下面命令会用优化等级 2 进行编译。
emcc -O2 test.c
总结
待续…