emscripten icon indicating copy to clipboard operation
emscripten copied to clipboard

GLFW.cursorPosFunc (no such functions have gotten exported)

Open MicroRJ opened this issue 1 year ago • 2 comments

if (GLFW.active.cursorPosFunc) {
          ((a1, a2, a3) => { throw 'Internal Error! Attempted to invoke wasm function pointer with signature "vidd", but no such functions have gotten exported!' })(GLFW.active.id, Browser.mouseX, Browser.mouseY);
}

I'm sort of lost here, I can register glfwSetCharCallback and other callbacks work fine, all callback functions are declared exactly the same way, and yet that 'throw' code is being generated specifically for the glfwSetCursorPosCallback.

This happens when building a side module:

I tried the following flags: -sSIDE_MODULE=1 -sUSE_GLFW=3 -sEXPORT_ALL -sLINKABLE

The callbacks and the glfw functions are in a library which is linked to the side module, the code loads the side module at runtime.

MicroRJ avatar May 02 '24 22:05 MicroRJ

You don't need -sEXPORT_ALL or -sLINKABLE when building a side module. Can you see if removing those flags fixes the issue?

sbc100 avatar May 03 '24 22:05 sbc100

Note that when you build side module there is no .js that gets generated, the .js file is built when you build the main module. What are the flags you are using when you build the main module?

sbc100 avatar May 03 '24 22:05 sbc100