ld找不到现有的库

我正在尝试在此Debian lenny系统上使用g

++链接应用程序。ld抱怨找不到指定的库。这里的特定示例是ImageMagick,但是其他一些库也遇到类似的问题。

我通过以下方式调用链接器:

g++ -w (..lots of .o files/include directories/etc..) \

-L/usr/lib -lmagic

ld抱怨:

/usr/bin/ld: cannot find -lmagic

但是,libmagic存在:

$ locate libmagic.so

/usr/lib/libmagic.so.1

/usr/lib/libmagic.so.1.0.0

$ ls -all /usr/lib/libmagic.so.1*

lrwxrwxrwx 1 root root 17 2008-12-01 03:52 /usr/lib/libmagic.so.1 -> libmagic.so.1.0.0

-rwxrwxrwx 1 root root 84664 2008-09-09 00:05 /usr/lib/libmagic.so.1.0.0

$ ldd /usr/lib/libmagic.so.1.0.0

linux-gate.so.1 => (0xb7f85000)

libz.so.1 => /usr/lib/libz.so.1 (0xb7f51000)

libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7df6000)

/lib/ld-linux.so.2 (0xb7f86000)

$ sudo ldconfig -v | grep "libmagic"

libmagic.so.1 -> libmagic.so.1.0.0

如何进一步诊断此问题,可能出什么问题了?我在做些完全愚蠢的事情吗?

回答:

问题是链接器正在寻找,libmagic.so但是您只有libmagic.so.1

一个快速的技巧是符号链接libmagic.so.1libmagic.so

以上是 ld找不到现有的库 的全部内容, 来源链接: utcz.com/qa/402815.html

回到顶部