WASI-sdk安装指南与使用

以前一直把C++转成Webassembly都用的是Emscripten,但是最近发现有个新工具WASI-sdk同样可以用来把C/C++转成webassembly,这里就做一下介绍吧。

WASI简介

WASI 是一种标准化的接口,旨在让WebAssembly 程序能够在不同的宿主环境中运行,同时保持安全性和可移植性。

二进制安装以及使用

Download SDK packages here.

export WASI_VERSION=14
export WASI_VERSION_FULL=${WASI_VERSION}.0
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz
export WASI_SDK_PATH=`pwd`/wasi-sdk-${WASI_VERSION_FULL}
CC="${WASI_SDK_PATH}/bin/clang --sysroot=${WASI_SDK_PATH}/share/wasi-sysroot"
$CC foo.c -o foo.wasm

编译安装

cd wasi-sdk
NINJA_FLAGS=-v make package

等待WASI-sdk20正式版

thread支持将在wasi-sdk20中添加。