该方案能解决大部分共享库安装问题
首先检查库的文件是不是真的存在,libquadmath.so.0
locate libquadmath.so.0
(没有locate就按照报错提示安装 sudo apt-get xxx)
1.如果真的存在,像我下面这样报告了位置,那么则是因为系统链接库时路径不对
/snap/gnome-3-38-2004/119/usr/lib/x86_64-linux-gnu/libquadmath.so.0
/snap/gnome-3-38-2004/119/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
/snap/gnome-3-38-2004/140/usr/lib/x86_64-linux-gnu/libquadmath.so.0
/snap/gnome-3-38-2004/140/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
/snap/gnome-42-2204/111/usr/lib/x86_64-linux-gnu/libquadmath.so.0
/snap/gnome-42-2204/111/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
/usr/lib/x86_64-linux-gnu/libquadmath.so.0
/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
这样说明执行调用共享库时,系统按照默认共享库路径找不到共享库文件
所以需要修改系统的共享路径的设置
1)如果共享库在/lib或者/usr/lib下,那么执行一下ldconfig命令即可
2)如果共享库安装到了/usr/local/lib很多开源共享库都会安装到该目录下,或者其他目录下,
那么先把新共享库目录加入到共享库配置文件 /etc/ld.so.conf 中
再执行ldconfig
参考下面这篇文章来修改共享库配置文件:
3)如果共享文件安装到其他非lib或者非usr/lib目录下,并且不想在配置文件中加路径或没有权限加路径,那么就export一个全局变量
export LD_LIBRARY_PATH=/usr/local/xxxx
这样每次运行程序的时候就会去这个目录中找共享库,可以设置多个搜索目录,冒号隔开
比如安装了一个mysql在/usr/local/mysql目录下,其中一大堆库文件在/usr/local/mysql/lib下面,那么可以在.bashrc或者.bash_profile或者shell里面加入以下语句
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
但这只是临时方案,适用于没有权限时
2.如果这个库本身不存在,那么就需要安装
参考这个
解决软件启动报error while loading shared libraries: libgd.so.2: cannot open shared object错误
一般用yum install xxx,如果yum搜索不到对应包,就需要你手动下载对应rpm包
建议直接网上搜索你的包名字+系统版本,一般会有很多包安装的教程
如果yum命令安装有问题,参考下面这个
yum命令安装出错,可能由于镜像源,需要换源,过程中记得备份source.list再更新换源