That error means it expects a function to be provided for that import, so your exports object must contain a property "env", and on that object, a property "_mono_class_get_method_from_name".
How are you generating the imports? Based on the name of the missing import, I'm guessing you may need all of mono - the easiest thing is to build it normally with emscripten and let emscripten do the loading of the library for you. However, if your library just needs a tiny subset of the functionality, perhaps you can implement it directly somehow. I'd take a look at the list of imports for the wasm module to see. On Sun, Sep 2, 2018 at 7:07 PM Arion Wong <[email protected]> wrote: > I am working on windows 10. And I want to compile a C++ file to wasm. > This C++ code call function from a static library. > > I compile the file with this command line :emcc cppfile.cpp -Os -s WASM=1 > -s SIDE_MODULE=1 -o cppfile.wasm -s RUNTIME_LINKED_LIBS=['library.lib'] -I > "F:/wzm/MonoProject/include" > > I load the wasm file with this code : > > function loadWebAssembly(filename, imports = {}) { > return fetch(filename) > .then(response => response.arrayBuffer()) > .then(buffer => WebAssembly.compile(buffer)) > .then(module => { > imports.env = imports.env || {} > Object.assign(imports.env, { > memoryBase: 0, > tableBase: 0, > memory: new WebAssembly.Memory({ initial: 256, maximum: 256 }), > table: new WebAssembly.Table({ initial: 0, maximum: 0, element: > 'anyfunc' }) > }) > return new WebAssembly.Instance(module, imports) > }) > } > > But when I load the wasm file , the console return me a error: > Uncaught (in promise) LinkError: WebAssembly Instantiation: Import #1 > module="env" function="_mono_class_get_method_from_name" error: function > import requires a callable > at fetch.then.then.then.module (http://localhost:8000/loader.js:13:14) > at <anonymous> > > It mean I don't link the library. > How to link the static library? > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
