2010-01-31 198 views
48

我遇到了在带有割炬的群集的头节点上找不到的共享库。我已经建立了库,并指定了库的正确路径,同时编译我自己的程序“荒谬”由g ++。所以我看起来很奇怪。任何想法?感谢致敬!无法打开共享对象文件:没有这样的文件或目录

[[email protected] release]$ make 
... 
... 
g++ -pipe -W -Wall -fopenmp -ggdb3 -O2 -I/home/tim/program_files/ICMCluster/ann_1.1.1/include -I/home/tim/program_files/ICMCluster/libsvm-2.89 -I/home/tim/program_files/ICMCluster/svm_light -o absurdity xxxxxx.o -L/home/tim/program_files/ICMCluster/ann_1.1.1/release/lib -L/home/tim/program_files/ICMCluster/libsvm-2.89/release/lib -L/home/tim/program_files/ICMCluster/svm_light/release/lib -lm -ljpeg -lpng -lz -lANN -lpthread -lsvm -lsvmlight 

[[email protected] release]$ ./absurdity 
./absurdity: error while loading shared libraries: libsvmlight.so: cannot open shared object file: No such file or directory 

[[email protected] release]$ ls /home/tim/program_files/ICMCluster/svm_light/release/lib/libsvmlight.so -l 
-rwxr-xr-x 1 tim Brown 121407 Jan 31 12:14 /home/tim/program_files/ICMCluster/svm_light/release/lib/libsvmlight.so 

[[email protected] release]$ LD_LIBRARY_PATH= /home/tim/program_files/ICMCluster/svm_light/release/lib:$LD_LIBRARY_PAT  
[[email protected] release]$ export LD_LIBRARY_PATH 

[[email protected] release]$ ./absurdity 
./absurdity: error while loading shared libraries: libsvmlight.so: cannot open shared object file: No such file or directory 

[[email protected] release]$ ls /home/tim/program_files/ICMCluster/svm_light/release/lib 
libsvmlight.a libsvmlight.so 

回答

65

LD_LIBRARY_PATH不包括路径libsvmlight.so

$ export LD_LIBRARY_PATH=/home/tim/program_files/ICMCluster/svm_light/release/lib:$LD_LIBRARY_PATH 
+1

谢谢,Maurits的。但奇怪的是它不工作。对不起,我忘了添加到帖子,但现在我已经完成了。 – Tim 2010-01-31 17:46:00

+0

好的,它现在正在工作。不知道为什么。也许集群的文件系统有一些问题。 – Tim 2010-01-31 17:56:02

+0

伟大的是我的问题。 – 2014-03-04 20:01:43

79

从我的答案抄在这里:作为根更新缓存https://stackoverflow.com/a/9368199/485088

运行ldconfig - 如果仍不能解决问题,则需要的路径添加到文件ld.so.conf(只需键入它在自己的行中)或更好的是,将该条目添加到目录ld.so.conf.d中的新文件(更易于删除)。

+17

运行ldconfig解决了类似的问题... – xmoex 2012-06-03 21:45:52

+0

'sudo ldconfig'解决了这个问题,谢谢 – Mis94 2017-02-26 19:29:02

4

在超级计算机上工作时,我当我跑收到此错误:

module load python/3.4.0 
screen 
python 

要解决的错误,我只是需要重新加载屏幕终端模块:

module load python/3.4.0 
python 
5
sudo ldconfig 

ldconfig创建必要的链接并缓存到最近的共享库中fo und在命令行中指定的目录中,/etc/ld.so.conf文件中和受信任的目录(/ lib和/ usr/lib)中。

一般包管理器负责这在安装新的库,但并非总是如此(特别是当你安装库cmake)。

如果这个输出是空

$ echo $LD_LIBRARY_PATH 

请设置默认路径

$ LD_LIBRARY_PATH=/usr/local/lib 
相关问题