编译C/C++为WebAssembly

编译器安装

如果自己想手动安装,可以参考https://emscripten.org

我使用docker来运行,运行命令如下(相当于进入一个已经装好了编译器的linux系统)

sudo docker run -it -v /tmp:/tmp trzeci/emscripten bash

准备好测试的源代码

假设文件test.c的内容如下

#include 
#include 

int main(int argc, char ** argv){
    printf("This is main function\n");
}

#ifdef __cplusplus
extern "C" {
#endif

void EMSCRIPTEN_KEEPALIVE show(int argc, char ** argv){
    printf("This is show function\n");
}

#ifdef __cplusplus
}
#endif

编译

emcc test.c -s WASM=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall']" -o test.js

编译会生成test.jstest.wasm这2个文件,引用的时候需要放在一起

HTML引用




test






注意

main函数是默认就会被调用的

网页项目需要跑在HTTP服务下才可以

你可能感兴趣的