ld 找不到已安装的库

发布于 2024-08-07 13:46:52 字数 640 浏览 2 评论 0原文

我坐在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泪是无色的血 2024-08-14 13:46:52

我真是太笨了这是一个旧的代码库,就在 -lsigc-2.0 语句之前,我有一个

-Wl,-Bstatic

显然,没有 libsigc 的静态库(不再)。

I'm so dumb. It's an old codebase and just before the -lsigc-2.0 statement I had a

-Wl,-Bstatic

Obviously, there are no static librarys for libsigc (anymore).

追风人 2024-08-14 13:46:52

libsigc-2.0.so 可能与除libsigc-2.0

objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME

如果您看到一些意外的内容,例如 libsigc,您可能需要使用该名称创建一个附加符号链接。

It is possible that libsigc-2.0.so was linked with an SONAME other than libsigc-2.0.

objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME

If you see something unexpected, e.g. libsigc, you may need to create an additional symlink with that name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文