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 <anonymous>
It mean I don't link the library.
How to link the static library?