【问题标题】:Compile C++ functions to Wasm将 C++ 函数编译为 Wasm
【发布时间】:2017-09-27 21:30:26
【问题描述】:

我读了tutorial 关于 wasm 和第 3 点之后。“调用 C 中定义的自定义函数”我试图弄清楚如何以这种方式将 C++ 函数和类绑定到 JavaScript?我必须在那里使用Embind,但是如何使用?

我还发现了这个thread,@lacenen 的第二个答案可能是一种解决方法。

【问题讨论】:

    标签: emscripten webassembly


    【解决方案1】:

    大多数时候你只需要在 WASM 中调用一个函数。 所以简单的方法:

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void EMSCRIPTEN_KEEPALIVE MyFunc()
    {
        printf("MyFunc()\n");
    }
    
    #ifdef __cplusplus
    }
    #endif
    

    使用 EmScripten 编译,您将拥有一个定义了 Module 的 .js 文件。 因此,在 JavaScript 端,您可以使用 ccall —— 这是没有参数或返回值的调用:

    Module.ccall('MyFunc', null, null, null);
    

    见:https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#interacting-with-code-ccall-cwrap

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 2020-11-11
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      相关资源
      最近更新 更多