首页/系统/信创系统运维速查/程序缺库(shared object 找不到)
常见问题65 条

程序缺库(shared object 找不到)

程序启动报 cannot open shared object:用 ldd 找出缺失库,核对架构后在仓库中查找所属包安装,最后 ldconfig 刷新缓存。

信创系统运维速查系统更新于 2026-10-12

定位

定位
ldd /opt/app/bin/app | grep -i 'not found'
readelf -d /opt/app/bin/app | head           # DT_NEEDED 依赖
file /opt/app/bin/app                        # 架构核对(x86_64/aarch64)

修复

修复
dnf provides '*/libxxx.so*'                  # 查询提供者包
dnf install -y <包名>
# 自编译库放 /usr/local/lib 后:
ldconfig
ldd /opt/app/bin/app | grep -ci 'not found'  # 期望为 0

易错点

  • 架构不匹配(x86 库放到 ARM)同样报 not found:完 file 核对
  • 优完用包管理获取库文件:手工拷贝来源不明的 so 有兼容与安全风险

数据来源与参考

  • man 8 ld.so
  • man 8 ldconfig
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌