I've been diving into dependency hell on an embedded Yocto Linux project recently in an attempt to compile and install a large project. I frequently run into an error while installing the dependencies (usually during the configure/make/make install steps) that a library can't be found. I'll take a quick look in
/lib and sure enough, the .so file is right there.
For example, if it complains it can't find
libfoo, I'll look in
/usr/lib and see this:
$ ls /usr/lib/libfoo* libfoo.so.3 libfoo.so.3.5.2
I figured out that the linker was strictly looking for
libfoo.so, so I created a soft link:
$ ln -s /usr/lib/libfoo.so.3.5.2 /usr/lib/libfoo.so
And then suddenly the linker could find it during compile and was happy.
Why do I need to do this sometimes? Is this considered normal procedure when manually installing dependencies from source or is there some step I'm missing that I should be doing?
uname output if that's useful:
$uname -a Linux ventana 3.14.48-1.0.x-ga+yocto+gd9991ca #1 SMP Wed Apr 18 15:23:20 MST 2018 armv7l GNU/Linux