首页 > 解决方案 > 未为复制的库更新 ldconfig 缓存

问题描述

我想让我的自定义共享库“libfoo.so”列在系统搜索路径中。

1,使用 soname libfoo.so.1 构建 libfoo.so.1.2 2,将两者复制到 /lib64/ 并为 libfoo 创建链接器名称 syslink

libfoo.so -> libfoo.so.1.2
libfoo.so.1 -> libfoo.so.1.2
libfoo.so.1.2

3、运行

sudo ldconfig

注意:尝试删除 ldconfig 缓存:ld.so.cache 并重新生成,仍然没有运气。重新启动但不工作 /lib64/ 列在 /etc/ld.so.conf 下

但是 ldconfig 缓存没有列出 libfoo,因此依赖于 libfoo 的应用程序将失败。

我错过了什么?

标签: linuxubuntulinkershared-libraries

解决方案


这是因为我们的共享库不遵循 GNU 命名约定。库文件

如果没有前缀 lib*,ldconfig 不会将 syslink 添加到缓存中。


推荐阅读