簡體   English   中英

無法打開共享對象文件:沒有這樣的文件或目錄

[英]cannot open shared object file: No such file or directory

我遇到了使用火炬在群集的頭節點上找不到的共享庫。 我已經構建了庫,並在通過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  

從我的答案復制到這里: https : //stackoverflow.com/a/9368199/485088

以root用戶身份運行ldconfig以更新高速緩存-如果仍然不能解決問題,則需要將路徑添加到文件ld.so.conf (只需在其ld.so.conf的行中鍵入),或者最好將其添加到ld.so.conf.d目錄中的新文件(易於刪除)。

您的LD_LIBRARY_PATH不包含libsvmlight.so的路徑。

$ export LD_LIBRARY_PATH=/home/tim/program_files/ICMCluster/svm_light/release/lib:$LD_LIBRARY_PATH
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM