首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >% ld找不到现有的库

% ld找不到现有的库
EN

Stack Overflow用户
提问于 2008-12-03 00:41:51
回答 6查看 699.2K关注 0票数 176

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

我使用以下命令调用链接器:

代码语言:javascript
复制
g++ -w (..lots of .o files/include directories/etc..) \
-L/usr/lib -lmagic

ld投诉:

代码语言:javascript
复制
/usr/bin/ld: cannot find -lmagic

然而,libmagic是存在的:

代码语言:javascript
复制
$ 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

如何进一步诊断此问题,以及可能出现的错误?我是不是做了件很愚蠢的事?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-12-03 01:06:18

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

一个简单的方法是将libmagic.so.1符号链接到libmagic.so

票数 178
EN

Stack Overflow用户

发布于 2012-05-23 17:10:57

在Ubuntu中,你可以安装libtool,它会自动解析库。

代码语言:javascript
复制
$ sudo apt-get install libtool

这为我解决了ltdl的一个问题,它是以libltdl.so.7的形式安装的,在开发过程中并不是简单的作为-lltdl

票数 9
EN

Stack Overflow用户

发布于 2016-05-18 04:51:25

如上所述,链接器正在寻找libmagic.so,但您只有libmagic.so.1

要解决此问题,只需执行更新缓存即可。

代码语言:javascript
复制
ldconfig -v 

要验证您是否可以运行以下命令:

代码语言:javascript
复制
$ ldconfig -p | grep libmagic
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/335928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档