On Fri, Jul 24, 2020 at 2:58 PM '[email protected]' via
emscripten-discuss <[email protected]> wrote:

> Hello!
>
> I’m experimenting with converting an existing project here to
> WebAssembly.  This project has several modules, each with its own library
> and test executable.  My current approach, just to see if I can get things
> running, is to build those test executables using the default emscripten
> shell.html file.  That process has been successful so far, except when I
> try to add a binding via embind.  Trying to “link” in the generated .js
> file with --post-js results in a runtime error apparently before any of the
> project code is run: “Module.arguments has been replaced with plain
> arguments_ (the initial value can be provided on Module, but after startup
> the value is only looked for on a local variable of that name)”
>
> I have this relevant section of my CMakeLists file:
>
>   add_custom_command(OUTPUT Utils-bindings.js
>
>     COMMAND
>
>     ${CMAKE_CXX_COMPILER}
>
>     --bind
>
>     “${CMAKE_CURRENT_SOURCE_DIR}/base/emscripten.cc”
>
>     -o
>
>     Utils-bindings.js
>
>     DEPENDS
>
>     “${CMAKE_CURRENT_SOURCE_DIR}/base/emscripten.cc”
>
>     )
>
>   target_link_options(${Utils_TEST} PUBLIC --bind --post-js
> Utils-bindings.js)
>
>
>
> Which generates these commands:
>
>  em++ --bind base/emscripten.cc -o Utils-bindings.js
>

You probably want  to use `-c` here to compile `base/emscripten.cc` into an
object file, and the link that object file into your final binary.

Otherwise you are asking emscripten to produce a filly linked program here,
that that cannot be combined into another emscripten program.

>
>
em++  -s DISABLE_EXCEPTION_CATCHING=2 -s WASM=1 -s SAFE_HEAP=1 -s
> WARN_UNALIGNED=1 -fsanitize=undefined -Oz -s ASSERTIONS=1 -s
> DEMANGLE_SUPPORT=1 -g -Wall -fno-omit-frame-pointer -m32 --bind --post-js
> Utils-bindings.js @CMakeFiles/Utils-test_g.dir/objects1.rsp  -o
> Utils-test_g.html @CMakeFiles/Utils-test_g.dir/linklibs.rsp
>
> Loading Utils-test_g.html in a browser produces the error.  I’ve tried all
> of the --(extern-)?(pre|post)-js permutations without success.  I’m well
> out of my depth and have been trying whatever I can find at this point.
> How do I get these library bindings “linked” into the “executable”?
>
> Thanks!
>
> ~Michael Iatauro
>
> --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/27a6a725-37f0-4e29-a2ee-b5d47deaeee4n%40googlegroups.com
> <https://groups.google.com/d/msgid/emscripten-discuss/27a6a725-37f0-4e29-a2ee-b5d47deaeee4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2-hK4Mn5cw1OvshCoaYASG-HDRUT08tEUchwgu%2B%3DXkwSQ%40mail.gmail.com.

Reply via email to