linking libraries under Linux
I exp开发者_开发技巧erienced a (for me) strange behaviour today: Using QMake with the PkgConfig-options etc. I was able to link the opencv libraries, but then I switched to CMake using PkgConfig. Once I tried to build my software, the linker complained that it was not able to find the library libcvaux
, which pkg-config returns asked to deliver the libraries for opencv
(pkg-config --libs opencv
).
In /usr/lib
I found a libcvaux.so.{version}
, but no "plain" entry libcvaux.so
. So what I did was to create a symlink, and now it works.
Now I wonder why it worked before. Is there something to pass ld
an option saying "use the newest version, and you get the version by looking at the numbers behind the so
suffix"? Or is it more some kind of bug that the maintainers of the opencv package forgot to add this symlink? Because e.g. libcv
or libhighgui
have such symbolic links.
Thank you!
From the ldconfig manpage:
ldconfig checks the header and file names of the libraries it encounters when determining which versions should have their links updated.
Maybe an earlier ldconfig run deleted the link.
精彩评论