You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何ldd检测到已存在的共享库显示‘not found’?

动态库存在但ldd检测找不到的原因及解决办法
  • 动态库搜索路径未配置
    系统默认仅在/lib、/usr/lib及/etc/ld.so.conf配置的目录中搜索动态库,你的库所在的/home/morpho/lib64大概率未加入搜索路径:

    • 临时修复:运行Java程序前执行export LD_LIBRARY_PATH=/home/morpho/lib64:$LD_LIBRARY_PATH,再启动程序。
    • 永久修复:将/home/morpho/lib64追加到/etc/ld.so.conf文件末尾,执行sudo ldconfig重建缓存。
  • 库的SONAME或依赖声明异常
    部分动态库编译时未正确设置SONAME(共享对象名称),或依赖项使用了非标准命名:

    • 查看libMorphoSmartSDKJavaWrapper.so.6.45.0.0的依赖声明:readelf -d /home/morpho/lib64/libMorphoSmartSDKJavaWrapper.so.6.45.0.0 | grep NEEDED,确认是否确实依赖libmorphosdk.so.6。
    • 检查libmorphosdk.so.6的SONAME:readelf -d /home/morpho/lib64/libmorphosdk.so.6 | grep SONAME,若SONAME与文件名不符,可创建对应软链接(如ln -s /home/morpho/lib64/libmorphosdk.so.6 /home/morpho/lib64/[SONAME值])。
  • 权限不足
    确保运行Java程序的用户对/home/morpho/lib64目录及所有.so文件有可读权限:

    • 查看权限:ls -l /home/morpho/lib64/
    • 修复权限:sudo chmod +r /home/morpho/lib64/*.so,并执行sudo chmod +x /home/morpho/lib64/
  • 架构不兼容
    若系统与库的64位/32位架构不匹配,ldd会无法识别:

    • 查看库架构:file /home/morpho/lib64/libmorphosdk.so.6
    • 查看Java架构:file $(which java)
      确保两者架构一致,若不一致需更换对应架构的库或Java环境。

内容的提问来源于stack exchange,提问作者Noor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:53:41