Program Club

공유 객체 파일을 열 수 없음 : 해당 파일 또는 디렉토리가 없습니다.

proclub 2021. 1. 9. 10:24
반응형

공유 객체 파일을 열 수 없음 : 해당 파일 또는 디렉토리가 없습니다.


토치가있는 클러스터의 헤드 노드에서 찾을 수없는 공유 라이브러리를 만났습니다. g ++로 "absurdity"프로그램을 컴파일하면서 라이브러리의 올바른 경로를 지정하고 라이브러리를 구축했습니다. 그래서 이상하게 보입니다. 어떤 생각? 감사합니다.

[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  

LD_LIBRARY_PATH대한 경로가 포함되어 있지 않습니다 libsvmlight.so.

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

여기 내 대답에서 복사되었습니다 : https://stackoverflow.com/a/9368199/485088

ldconfig루트로 실행 하여 캐시를 업데이트하십시오. 그래도 도움이되지 않으면 파일에 경로를 추가해야합니다 ld.so.conf(자체 줄에 입력하기 만하면됩니다). 더 좋은 방법은 새 파일에 항목을 추가하는 것입니다 (삭제하기 더 쉽습니다). ) 디렉토리에 ld.so.conf.d있습니다.


sudo ldconfig

ldconfig는 명령 줄에 지정된 디렉토리, /etc/ld.so.conf 파일 및 신뢰할 수있는 디렉토리 (/ lib 및 / usr / lib)에있는 가장 최근의 공유 라이브러리에 필요한 링크와 캐시를 만듭니다.

일반적으로 패키지 관리자는 새 라이브러리를 설치하는 동안이를 처리하지만 항상 그런 것은 아닙니다 (특히를 사용하여 라이브러리를 설치할 때 cmake).

그리고 이것의 출력이 비어 있다면

$ echo $LD_LIBRARY_PATH

기본 경로를 설정하십시오

$ LD_LIBRARY_PATH=/usr/local/lib

슈퍼 컴퓨터에서 작업 할 때 다음을 실행할 때이 오류가 발생했습니다.

module load python/3.4.0
screen
python

오류를 해결하려면 화면 터미널에서 모듈을 다시로드하기 만하면됩니다.

module load python/3.4.0
python

참조 URL : https://stackoverflow.com/questions/2172621/cannot-open-shared-object-file-no-such-file-or-directory

반응형