linux - 未为复制的库更新 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 的应用程序将失败。
我错过了什么?
解决方案
这是因为我们的共享库不遵循 GNU 命名约定。库文件
如果没有前缀 lib*,ldconfig 不会将 syslink 添加到缓存中。
推荐阅读
- python - 是否有其他方法可以创建一个空数组然后用 Python 填充它?
- java - 任何有 Android 和 xml 经验的人都可以问一个问题来解释一个谜
- c# - 以编程方式更改浏览器搜索提供程序
- openxml - 如何通过 OpenXML 将图像设置为矩形?
- r - 绘制背靠背图
- laravel - 如何在 Laravel 中使用 POINT 数据类型从 MySQL 中检索记录?
- python - 如何在 Python 中将“原始”字符串转换为“解码”字符串?
- c# - 如何将 Authorize 与 @inherits 一起使用?
- c - 如何拦截存储大小查询命令
- c++ - C++/C 代码在 M1 和 Intel 上有不同的执行块