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可以看到共享库,编译也正常,但是运行还是报上面的错误,找不到文件,可能是共享库的权限问题,运行程序无法访问。

posted @   秋来叶黄  阅读(1050)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示