如何解决ld 找不到现有的库?
问题是链接器正在寻找libmagic.so
但你只有libmagic.so.1
一个快速的技巧是符号链接libmagic.so.1
到libmagic.so
解决方法
我正在尝试在此 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
我如何进一步诊断这个问题,可能出了什么问题?我在做一些完全愚蠢的事情吗?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。