Hi,
The basic idea of putting the libs external is good. It is not really programer friendly yet however.
Having ported some code (mix of C and C++) from 3.2 to 3.3, I had some problems making nxweb run with modules in an external shared lib that has other dependencies.
The only message nxweb prints in those cases is "failed to load shared library {name of modules library}".
****** start of "how I solved it" section, may help others.. If not interested, fast forward
ldd is of no help here, as it does not trace the dlopen calls.
Adding the external dependencies via -L does not seem to help (and is a pain, as that means having to specify the full path), as I probably set up a wrong the load sequence, and I do not even know if -L supports the loading of dependencies of dependencies.
So I linked the external dependencies (-lgcc -lgcc_s -lstdc++ and others) into the module (adding them into nxweb works also of course) and everything runs again. But it takes a lot of work to get there again. Static linking gives so much more feedback.
The only way to get something remotely useful (better than strace) is to use something like
LD_BIND_NOW=1 LD_WARN=1 LD_TRACE_LOADED_OBJECTS=1 LD_PRELOAD={module.so} nxweb -c nxweb_config.json
***** end of "how I solved it" section
My suggestion: please add a bit more debugging in nxweb around the library load process. Please use dlerror(). It will show only the first missing symbol, but it is a starter.
Do you think that is possible?
Kind regards,
Hans