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