ld 找不到现有的库 [英] ld cannot find an existing library

查看:41
本文介绍了ld 找不到现有的库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在这个 Debian lenny 系统上将一个应用程序与 g++ 链接起来.ld 抱怨它找不到指定的库.这里的具体示例是 ImageMagick,但我在其他一些库中也遇到了类似的问题.

I am attempting to link an application with g++ on this Debian lenny system. ld is complaining it cannot find specified libraries. The specific example here is ImageMagick, but I am having similar problems with a few other libraries too.

我正在调用链接器:

g++ -w (..lots of .o files/include directories/etc..) 
-L/usr/lib -lmagic

ld 抱怨:

/usr/bin/ld: cannot find -lmagic

但是,libmagic 是存在的:

However, libmagic exists:

$ 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

我该如何进一步诊断这个问题,可能是哪里出了问题?我在做一些完全愚蠢的事情吗?

How do I diagnose this problem further, and what could be wrong? Am I doing something completely stupid?

推荐答案

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

The problem is the linker is looking for libmagic.so but you only have libmagic.so.1

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

A quick hack is to symlink libmagic.so.1 to libmagic.so

这篇关于ld 找不到现有的库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆