in reply to DynaLoader can't resolve multiple Linux shared objects

Can you build with $ORIGIN/auto/LicenseInterface in its rpath? $ORIGIN is a special prefix understood by GNU as "the directory where the executable resides". Or maybe you need to write just $ORIGIN without anything else because the current executable would be and is already stored near it.

Replies are listed 'Best First'.
Re^2: DynaLoader can't resolve multiple Linux shared objects
by boleary (Beadle) on Nov 14, 2018 at 13:59 UTC

    I'm not sure how to do that, but will I look into it... That really sounds like what I need because this was just a simple test case and the module will not be located in such a convenient location

    So CLOSE! I added the:


    to the g++ command like your helpful link told me... now it works when I run perl without LD_LIBRARY_PATH being set, and I can have the .so in ".' or './auto/LicenseInterface' or '../COMMON/auto/LicenseInterface'

    However, the perlApp exe file still does not work, but its the that it can't find now, so it did resolve the and files loaded (../COMMON/LicenseInterface, /lib /usr/lib /usr/l +ocal/lib) DynaLoader::bootstrap for LicenseInterface (auto/LicenseInterface/Lice Can't load 'auto/LicenseInterface/' for module Lice +nseInterface: cannot open shared object file: No such fil +e or directory at /</home/boleary/git_repos/CE_TOOLS/testLib/BUILD_TE +MP/cadEnhance/tools/TESTLIB/testLib> line 224. at /</home/boleary/git_repos/CE_TOOLS/testLib/BUILD_TEMP/cadEnhance/t +ools/TESTLIB/testLib> line 11.

      I did not need to link libperl !!!!

      now executable is working

      from hopeless to solved with one small hint! Thank you