1. 多个bitcode直接变成js
2. 多个bitcode先编译成一个,然后在变成js
extern.cc文件
extern "C"
{
int add(int x, int y)
{
int a=333;
return x + y+ a;
}
int min(int x, int y)
{
return x - y;
}
}
emcc extern.cc -o extern.js -s EXPORTED_FUNCTIONS='["_add","_min"]' -O3 -s wasm=1
注意:这里EXPORTED_FUNCTIONS指的是导出的函数,需要和源文件里的函数名是相对应的,-O3是编译优化等级,只有这个等级生成的wasm文件才会很小(几十字节),不加该优化选项,生成的wasm将会有几十KB。生成的时候会临时产生*.asm.js,等生成完后,会自动删掉。
执行完将会生成 extern.js和extern.wasm两个文件。
wasm2wat extern.wasm -o extern.wast
(开源编译器框架llvm字节介绍:http://www.nagain.com/activity/article/4/)
emcc extern.cc -o extern.bc -s EXPORTED_FUNCTIONS='["_add","_min"]' -O3
llvm-dis extern.bc
(1)编译.js文件
emcc extern.cc -o extern.js -s EXPORTED_FUNCTIONS='["_add","_min"]'
(2)编写test.js
var em_module = require('./extern.js');
console.log("add:"+em_module._add(4,5));
console.log("add:"+em_module._min(5,4));
(3)运行
Node node-test.js