It is Debian convention to separate shared libraries into their runtime components (
Because the library's soname is
However, because the library is specified as
See Diego E. Pettenò: Linkers and names for details on how this all works on Linux.
In short, you should
This will not only give you
src: http://stackoverflow.com/questions/335928/ld-cannot-find-an-existing-library
libmagic1: /usr/lib/libmagic.so.1 → libmagic.so.1.0.0
) and their development components (libmagic-dev: /usr/lib/libmagic.so → …
).Because the library's soname is
libmagic.so.1
, that's the string that gets embedded into the executable so that's the file that is loaded when the executable is run.However, because the library is specified as
-lmagic
to the linker, it looks for libmagic.so
, which is why it is needed for development.See Diego E. Pettenò: Linkers and names for details on how this all works on Linux.
In short, you should
apt-get install libmagic-dev
.This will not only give you
libmagic.so
but also other files necessary for compiling like /usr/include/magic.h
.src: http://stackoverflow.com/questions/335928/ld-cannot-find-an-existing-library
No comments:
Post a Comment