The second solution assumes that you compile using c++17 or later. On Fri, 27 Dec 2019 at 07:50, Shachar Langbeheim <[email protected]> wrote:
> Try either add '__attribute__((used))' or defining the constant as 'static > inline'. > > On Thu, 26 Dec 2019 at 20:32, キャロウ マーク <[email protected]> wrote: > >> I am trying to use embind to provide a JS API to some c/c++ code. The >> underlying code is c and I have a small wrapper to give it a proper c++ >> api. My file ktx_wrappers.cpp contains this c++ wrapper and the >> EMSCRIPTEN_BINDINGS. Due to the build system I am using, this is first >> compiled to a .o then in a second step linked with the underlying library, >> also previously compiled, to produce the .js file. >> >> The wrapper class contains (simplified for illustration) >> >> namespace ktx_wrappers >> { >> class texture >> { >> public: >> ... >> static const uint32_t KTX_FOO = 1; >> ... >> } >> } >> >> EMSCRIPTEN_BINDINGS contains >> >> EMSCRIPTEN_BINDINGS(ktx_wrappers) >> { >> class_<ktx_wrappers::texture>("ktxTexture") >> .class_property("KTX_FOO", &ktx_wrappers::texture::KTX_FOO) >> … >> ; >> } >> >> This compiles fine but on link wasm-ld reports "undefined symbol: >> ktx_wrappers::texture::KTX_FOO”. llvm-nm on ktx_wrappers.o indeed shows >> that this symbol is undefined. >> >> I am specifying —bind on both the compile & link commands. >> >> How to I prevent the compiler removing this symbol? Is it being removed >> because none of the class texture methods reference this static class >> constant? >> >> Regards >> >> -Mark >> >> >> >> >> -- >> 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/E89A8902-A981-43A2-8C04-6D9CAA99AF10%40callow.im >> . >> > -- 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/CA%2B_KjGacAEP6RhcKwwG4hiDLLcw3_di9p7YmfYHpcLAnMjm26g%40mail.gmail.com.
