Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cannot load shared library that exists in /usr/local/lib (Fedora x64)

When attempting to run a program I just compiled successfully, I get the following error:

./src/sensors/laser_scan_producer: error while loading shared libraries: liblcm.so.1: cannot open shared object file: No such file or directory

ls /usr/local/lib/liblcm* yields

/usr/local/lib/liblcm.la  
/usr/local/lib/liblcm.so  
/usr/local/lib/liblcm.so.1  
/usr/local/lib/liblcm.so.1.2.0

I have executed sudo ldconfig several times and added /usr/local/lib to LD_LIBRARY_PATH for the sake of redundancy.

This exhausts the list of answers I've seen whilst grepping around stackOverflow.

Anyone spot the problem?

like image 259
williamstome Avatar asked Aug 20 '12 21:08

williamstome


2 Answers

Thank you to @Joachim_Pileborg:

ldconfig uses the file /etc/ld.so.conf. You can add /usr/local/lib to that file, re-run ldconfig and try again

Doing so fixed the problem, although I find it odd that /usr/local/lib wouldn't have been checked in the natural course of things.

like image 75
williamstome Avatar answered Oct 29 '22 13:10

williamstome


I found a working solution for both /usr/local/lib and /usr/local/lib64 directories in this commit.

First run this command as root to add those directories.

tee /etc/ld.so.conf.d/local.conf <<EOF
/usr/local/lib
/usr/local/lib64
EOF

Next run as root:

ldconfig
like image 37
nio Avatar answered Oct 29 '22 14:10

nio