无法打开共享对象文件:没有这样的文件或目录

Tim*_*Tim 54 c++

我遇到了火炬群集的头节点上找不到的共享库.我已经构建了库以及指定库的正确路径,同时用g ++编译我自己的程序"荒谬".所以我觉得很奇怪.任何的想法?感谢致敬!

[tim@user1 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  

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

[tim@user1 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 

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

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

[tim@user1 release]$ ls  /home/tim/program_files/ICMCluster/svm_light/release/lib  
libsvmlight.a  libsvmlight.so  
Run Code Online (Sandbox Code Playgroud)

Tim*_*Čas 90

从我的答案复制到这里:https://stackoverflow.com/a/9368199/485088

ldconfig以root用户身份运行以更新缓存 - 如果仍然没有帮助,则需要添加文件路径ld.so.conf(只需在自己的行中输入)或者更好,将条目添加到新文件中(更容易删除) )在目录中ld.so.conf.d.


Mau*_*ijk 72

LD_LIBRARY_PATH的路径不包括libsvmlight.so.

$ export LD_LIBRARY_PATH=/home/tim/program_files/ICMCluster/svm_light/release/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)


Shr*_*n40 11

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

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

通常,包管理器会在安装新库时处理此问题,但并非总是如此(特别是在安装库时cmake).

如果输出为空

$ echo $LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

请设置默认路径

$ LD_LIBRARY_PATH=/usr/local/lib
Run Code Online (Sandbox Code Playgroud)


duh*_*ime 5

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

module load python/3.4.0
screen
python
Run Code Online (Sandbox Code Playgroud)

要解决该错误,我只需在屏幕终端中重新加载模块即可:

module load python/3.4.0
python
Run Code Online (Sandbox Code Playgroud)