Skip to content
Advertisement

Linux – cannot find shared library

Using Code::Blocks (13.12) / g++ to create some test code using the DVB V5 libraries on Ubuntu 14.04. The library was downloaded, built and installed following instructions in the download.

Had it all working then had a disk crash.

Decided to reinstall everything from scratch rather than use a backup, and downloaded libdvbv5 source again and rebuilt it. All seemed to go OK.

Replaced the Code::Blocks test project from the backup and cleaned and rebuilt it all, but when debugging or running from the command line …. it now says:

“error while loading shared libraries: libdvbv5.so.0: cannot open shared object file: No such file or directory”

Well, the library appears to be there. ls -l in /usr/local/lib gives

lrwxrwxrwx 1 root root       17 May 14 21:34 libdvbv5.so ->     libdvbv5.so.0.0.0
lrwxrwxrwx 1 root root       17 May 14 21:34 libdvbv5.so.0 ->    libdvbv5.so.0.0.0
-rwxr-xr-x 1 root root   752569 May 14 21:34 libdvbv5.so.0.0.0

Without it the code won’t build anyway, and it does. I must admit I’m a bit confused why it complains about libdvbv5.so.0 when what is linked in is libdvbv5.so and that is a direct link to libdvbv5.so.0.0.0.

Scratching my head over this – what’s going on?

Advertisement

Answer

Fixed it – stupid – forgot to run ldconfig to rebuild the cache after installing libdvbv5. Go to the libdir such as /usr/local/lib

/usr/local/lib$ sudo ldconfig
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement