Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在emscripten中绑定函数_Javascript_C++_Clang_Llvm_Emscripten - Fatal编程技术网

Javascript 无法在emscripten中绑定函数

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;

我正在尝试使用emscripten从js调用我的c/c++函数。为此,我指的是本教程:

我正在遵循本文中提到的过程,但是lerp函数没有导出到模块,并且我得到了TypeError:Module.lerp不是我的浏览器控制台中的函数

我只是使用本文中提到的文件,没有做任何修改,但仍然无法从js调用c函数

请帮助我,我错过了什么

// 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>