Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如何把ZXing C++通过WASI Libc编译成wasm文件。
支持WASI运行时的工具
现在可以用wasmer和wasmtime通过命令行来运行支持wasi的wasm文件。wasmer提供了安装包,而wasmtime只能通过源码来编译。两个工具都支持windows, Linux和macOS。
编译ZXing C++
下载最新的WASI-SDK。这个安装包中已经自带了clang,所以不需要单独安装clang。
设置环境变量:
sudo dpkg -i wasi-sdk_7.0_amd64.deb
export PATH=/opt/wasi-sdk/bin:$PATH
export CC=/opt/wasi-sdk/bin/clang
export CXX=/opt/wasi-sdk/bin/clang++
从GitHub上下载一份ZXing C++的源码。
接下来要对工程结构做一些修改。首先在example