先上解决方法(部分情况适用):
在cpp文件中你想要引入js的函数外层套一个 extern “C” {}
例如你的源代码是这样:
int f(){
printf("Hello WebAssembly");
}
你只需要这样做:
extern "C" {
int f(){
printf("Hello WebAssembly");
}
}
这样就可以在js中正常调用啦!
这个问题我们可以在编译出的js代码中找到,对于我,这是我cpp中的函数名:
这是js文件中的函数名:
其实是c++编译时对函数的名称进行 mangle(类似于重命名),导致编译出来的js中的函数与原cpp中函数名不匹配的原因。