(转自https://www.cnblogs.com/codingmengmeng/p/7456539.html
)
error while loading shared libraries 错误表明: 当程序需要链接到动态库时,找不到相关的.so库。
原因分析:
这是由于默认情况下编译器只会使用/lib/ 和 /usr/lib/ 这两个目录下的文件,而在编译程序源码时,如果不指定--prefix 会将库安装到/usr/local/lib/目录下。因为/usr/local/lib/目录不在系统默认的库搜索目录中,因此需要将该目录添加进去。
解决方法:
$ sudo gedit /etc/ld.so.conf
在该文件”ld.so.conf”中最后一行添加“/usr/local/lib”, 一般来说此时ld.so.conf的文件内容为:
include ld.so.conf.d/*
/usr/local/lib
保存修改,然后执行:
···
/sbin/ldconfig -v
···
该命令的目的是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。
网友评论