简体   繁体   中英

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?

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM