Не может открыть файл общих объектов: нет такого файла или каталога

Я встретил библиотеку разделов, не найденную на голове node кластера с факелом. Я создал библиотеку, а также задал правильный путь библиотеки при компиляции моей собственной "абсурдности" программы 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  

Ответ 1

Ваш LD_LIBRARY_PATH не включает путь к libsvmlight.so.

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

Ответ 2

Скопировано из моего ответа здесь: fooobar.com/questions/113592/...

Запустите ldconfig как root для обновления кеша - если это все еще не помогает, вам нужно добавить путь к файлу ld.so.conf (просто введите его в своей строке) или еще лучше, добавьте запись в новый файл (проще удалить) в каталоге ld.so.conf.d.

Ответ 3

sudo ldconfig

ldconfig создает необходимые ссылки и кеш для самых последних разделяемых библиотек, найденных в каталогах, указанных в командной строке, в файле /etc/ld.so.conf и в доверенных каталогах (/lib и /usr/Lib ).

Обычно диспетчер пакетов заботится об этом при установке новой библиотеки, но не всегда (особенно при установке библиотеки с помощью cmake).

И если вывод этого пустого

$ echo $LD_LIBRARY_PATH

Укажите путь по умолчанию

$ LD_LIBRARY_PATH=/usr/local/lib

Ответ 4

При работе над суперкомпьютером я получил эту ошибку при запуске:

module load python/3.4.0
screen
python

Чтобы устранить ошибку, мне просто нужно было перезагрузить модуль в терминале экрана:

module load python/3.4.0
python