欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cannot open shared object file: No such file or directory

程序员文章站 2022-03-08 19:27:15
...

原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.

另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.

我这当然说的是本地安装了,但属于找不到路劲这种情况。
之前在CentOS 6上,直接设置/etc/profile环境变量PATH就行,但当系统升级为centOS 7 后发现不管怎么设置,就是不行。
先说说在CentOS 6上怎么解决的:

vi /etc/profile

在最后加上:

#mypath是指我们需要指定的目录
export PATH=$PATH:mypath:

然后让它立即生效:

source /etc/profile

在CentOS 7上发现这样设置不行了,我们C/C++默认找的路径叫LD_LIBRARY_PATH
而且由于CentOS 7 不建议直接修改/etc/profile文件,而是在/etc/profile.d/目录下,自定义一个文件,我们这定义为myLocalPath.sh
然后

vi MyLocalPath.sh
#MyPath是我们指定的目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:MyPath:

然后让它立即执行:

source /etc/profile