WebAssembly Note(Compiling With C Lang)

编译C语言

emcc hello.c -o hello.html

http代理

emrun --no_browser --port 8080 .

编译成JS可调用方放
emcc -o ./wasm/api.html api.c -O3 -s WASM=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall']"

-O3表示代码优化级别,会压缩代码
wasm/api.html输出为html,也可以只生成为js
WASM=1指定我们想要的wasm输出形式,如果我们不指定这个选项,Emscripten默认将只会生成asm.js
Js可调用例子,js中调用_getNum()即可

#include <stdio.h>
#include <stdlib.h>
#include <emscripten/emscripten.h>
#define random(x)(rand()%x)

int main(int argc, char ** argv){
	printf("WebAssembly Launch");
	return 0;
}


#ifdef __cplusplus
extern "C" {
#endif

int EMSCRIPTEN_KEEPALIVE getNum(int argc, char ** argv){
	int randNum = random(100);
	printf("%d/n",randNum);
	return randNum;
}

#ifdef __cplusplus
}
#endi
posted @ 2020-03-17 15:30  Jay·Chan  阅读(109)  评论(0编辑  收藏  举报