error while loading shared libraries: lib***.so.8.0: cannot open shared object file: No such file **

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/handsome_for_kill/article/details/79319052

error while loading shared libraries: lib***.so: cannot open shared object file: No such file or directory **

通常出现这个错误都是在运行程序的阶段,这个错误是在告诉你,当前运行的程序找不到所需要的动态链接库了,因此这个时候你只需要告诉程序动态链接库在哪里就可以了!
(找不到所需要的动态链接库有可能是你还没安装,那你得装啊。否则就是你装了,但是安装的位置电脑没有搜索。)

那么如何来告诉你的程序,动态链接库在哪里呢?

举一个例子:

我运行了一个程序是需要用到libcufft.so.8.0这个库的,但是我的程序找不到它的位置了,所以产生了如下错误:

error while loading shared libraries: libcufft.so.8.0: cannot open shared object file: No such file or directory

第一步
首先你自己得知道这个库在哪里!!!
对于我,首先要自己定位到libcufft.so.8.0这个库的位置,这是一个CUDA的库,我随手一找,发现在我的电脑里的位置是:

/usr/local/cuda-8.0/lib64/

第二步
告诉系统在查找库的时候要搜索上面这个位置。那么具体怎么告诉呢?下面的命令告诉你:

# 进入文件夹
cd /etc/ld.so.conf.d
# 文件名随便取,我这里因为库是cuda的,所以取名cuda.conf
touch cuda.conf 
# 修改文件,把对应的库的位置写入这个文件中
echo "/usr/local/cuda-8.0/lib64" >> cuda.conf
# 使配置生效
sudo ldconfig    

这一步做完,应该就是大功告成了。

另外,感兴趣的读者还可以自己查阅资料看看ld.so.conf.d和ldconfig到底是干嘛用的!

最后祝福大家Coding愉快!

猜你喜欢

转载自blog.csdn.net/handsome_for_kill/article/details/79319052