error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or directory
发生这种问题就在于编译程序链接的库在运行时找不到,或者不存在,或者版本不正确等。使用ldd 你的应用程序|grep -i "libxxx"
来查看程序中具体链接的库的位置和版本号,然后查看对应位置下是否有该共享库,如果没有,需要确定编译的时候指定的位置是否正确,如果仅仅是别名的问题,可以用ln
创建一个链接
如果指定的目录有对应的库,但是编译的程序还是找不到,有可能你的库存放的位置不是系统默认位置,编译的时候又没有指定加载位置,导致编译的过程没有找到。编译链接没有找到对应的库,并不会报错,所以需要通过ldd
查看。
系统默认搜索的位置是/lib(64)
/usr/lib(64)
,而一些自己编译安装的路径默认为/usr/local/lib(64)
,所以安装完成后也需要指定,比如设置环境变量LD_LIBRARY_PATH
如果说ldd可以看到共享库,编译也正常,但是运行还是报上面的错误,找不到文件,可能是共享库的权限问题,运行程序无法访问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!