ld 找不到已安装的库
我坐在 OpenSuse 11.1 x64 Box 上,并且有一个使用 sigc++ 的模块。当像这样链接时:
g++ [a lot of o's, L's and l's] -lsigc-2.0
我得到
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0
但是库就在那里。
在文件系统中:
$ sudo find / -name "libsigc-2.0*"
/usr/lib64/libsigc-2.0.so.0.0.0
/usr/lib64/libsigc-2.0.so.0
/usr/lib64/libsigc-2.0.so
在 ld.so.conf 中,我有:
/usr/lib64
当调用 ldconfig 时:
$ ldconfig -v | grep sigc
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0
为什么?
I'm sitting on an OpenSuse 11.1 x64 Box and I have a module that uses sigc++. When linking like this:
g++ [a lot of o's, L's and l's] -lsigc-2.0
I get
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0
However the library is there.
In the filesystem:
$ sudo find / -name "libsigc-2.0*"
/usr/lib64/libsigc-2.0.so.0.0.0
/usr/lib64/libsigc-2.0.so.0
/usr/lib64/libsigc-2.0.so
In ld.so.conf I have:
/usr/lib64
And when invoking ldconfig:
$ ldconfig -v | grep sigc
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0
Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我真是太笨了这是一个旧的代码库,就在 -lsigc-2.0 语句之前,我有一个
显然,没有 libsigc 的静态库(不再)。
I'm so dumb. It's an old codebase and just before the -lsigc-2.0 statement I had a
Obviously, there are no static librarys for libsigc (anymore).
libsigc-2.0.so 可能与除
libsigc-2.0
。如果您看到一些意外的内容,例如
libsigc
,您可能需要使用该名称创建一个附加符号链接。It is possible that libsigc-2.0.so was linked with an SONAME other than
libsigc-2.0
.If you see something unexpected, e.g.
libsigc
, you may need to create an additional symlink with that name.