I have an executable vimba, which uses a shared library libVmbC.so, which is not installed to the standard location. The copies reside at:
paul@desktop:~/st-cpp/vimba/build$ sudo find / -name "libVmbC.so"
/home/paul/VimbaX_2023-4/api/lib/libVmbC.so
/home/paul/VimbaX_2023-4/bin/libVmbC.so
On a new Ubuntu 23.10 installation, I added it to the LD_LIBRARY_PATH and everything works fine. On the "old" Ubuntu 22.04 system, this library is not on LD_LIBRARY_PATH path, which is empty:
paul@desktop:~/st-cpp/vimba/build$ echo $LD_LIBRARY_PATH
nor it's detected by ldconfig:
paul@desktop:~/st-cpp/vimba/build$ ldconfig -p | grep libVmbC.so
nor it is listed in ld.so.conf or any of the files included by it. ldd is able to locate it and vimba runs fine, though:
paul@desktop:~/st-cpp/vimba/build$ ldd vimba
linux-vdso.so.1 (0x00007ffd179a3000)
libtbb.so.12 => /usr/local/lib/libtbb.so.12 (0x00007f23bb448000)
libVmbC.so => /home/paul/VimbaX_2023-4/api/lib/libVmbC.so (0x00007f23bb000000)
...
How does ldd know to find it at /home/paul/VimbaX_2023-4/api/lib/libVmbC.so?
RPATHorRUNPATHset in the binary? – muru Mar 18 '24 at 01:40