I’ve been trying to solve this for a few hours now.
I am compiling some c files using gcc. The files require libpbc, so I am using the -L flag to point gcc at the directory which contains libpbc.so.1. The code compiles without error yet when I attempt to run it I get the following error message:
./example.out: error while loading shared libraries: libpbc.so.1: cannot open shared object file: No such file or directory
Looking at similar questions this error message seems to indicate that gcc can’t find libpbc.so.1. I know gcc sees libpbc.so.1 because when I rename libpbc.so.1 to something else it fails to compile.
I am using -L to point to the directory which contains libpbc.so.1.
Not sure what next steps I can take to figure this out. Would appreciate any ideas. What does this error message mean exactly?
EDIT
Running ldd example.out results in:
linux-gate.so.1 => (0xb7fe3000)
libpbc.so.1 => not found
libgmp.so.3 => /usr/lib/libgmp.so.3 (0xb7f87000)
That will give a lot of useful information about dynamic linking. More specifically though, your problem most likely lies with the path of the library not being in.
Note, that if you update that file, you must then run