Javascript 无法在emscripten中绑定函数
我正在尝试使用emscripten从js调用我的c/c++函数。为此,我指的是本教程: 我正在遵循本文中提到的过程,但是lerp函数没有导出到模块,并且我得到了TypeError:Module.lerp不是我的浏览器控制台中的函数 我只是使用本文中提到的文件,没有做任何修改,但仍然无法从js调用c函数 请帮助我,我错过了什么Javascript 无法在emscripten中绑定函数,javascript,c++,clang,llvm,emscripten,Javascript,C++,Clang,Llvm,Emscripten,我正在尝试使用emscripten从js调用我的c/c++函数。为此,我指的是本教程: 我正在遵循本文中提到的过程,但是lerp函数没有导出到模块,并且我得到了TypeError:Module.lerp不是我的浏览器控制台中的函数 我只是使用本文中提到的文件,没有做任何修改,但仍然无法从js调用c函数 请帮助我,我错过了什么 // quick_example.cpp #include <emscripten/bind.h> using namespace emscripten;
// quick_example.cpp
#include <emscripten/bind.h>
using namespace emscripten;
float lerp(float a, float b, float t) {
return (1 - t) * a + t * b;
}
EMSCRIPTEN_BINDINGS(my_module) {
function("lerp", &lerp);
}
运行本地服务器
pyhton -m SimpleHTTPServer 9000
在浏览器上,启动此页面时,我遇到此错误
TypeError: Module.lerp is not a function
谢谢我认为您需要将您的lerp函数放在EXPORTED_FUNCTIONS命令行选项中 导出的函数=['lerp'] 此外,您可能希望在代码中使用EMSCRIPTEN_KEEPALIVE注释来防止内联,但导出的_函数就足够了。见:
初始化尚未完成
<!doctype html>
<html>
<script src="quick_example.js"></script>
<script>
Module['onRuntimeInitialized'] = () => {
console.log('lerp result: ' + Module.lerp(1, 2, 0.5));
}
</script>
</html>
您的代码在哪里?添加了,请看一下quick_示例的内容。jsI不熟悉emscripten,但我注意到您使用的是“Module.lerp”,而您传递给emscripten_绑定的是我的_模块。@zneak是的,但这在原始文档中。也许是有问题的医生?
TypeError: Module.lerp is not a function
<!doctype html>
<html>
<script src="quick_example.js"></script>
<script>
Module['onRuntimeInitialized'] = () => {
console.log('lerp result: ' + Module.lerp(1, 2, 0.5));
}
</script>
</html>