2010-01-31 39 views
48

Tôi đã gặp thư viện chia sẻ không tìm thấy trên nút đầu của cụm có đèn pin. Tôi đã xây dựng thư viện cũng như chỉ định đường dẫn chính xác của thư viện trong khi biên dịch chương trình của riêng tôi "ngớ ngẩn" bằng g ++. Vì vậy, có vẻ lạ với tôi. Bất kỳ ý tưởng? Cảm ơn và kính trọng!không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào như vậy

[[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 

Trả lời

65

LD_LIBRARY_PATH của bạn không bao gồm đường dẫn đến libsvmlight.so.

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

Cảm ơn, Maurits. Nhưng thật kỳ lạ là nó không hoạt động. Xin lỗi, tôi quên thêm vào bài đăng nhưng bây giờ tôi đã làm nó. – Tim

+0

Được rồi, hiện tại nó đang hoạt động. Không chắc chắn lý do tại sao. Có lẽ hệ thống tập tin của cụm có một số vấn đề. – Tim

+0

Tuyệt vời đó là vấn đề đối với tôi. –

79

sao chép từ câu trả lời của tôi ở đây: https://stackoverflow.com/a/9368199/485088

Run ldconfig như là người chủ để cập nhật bộ nhớ cache - nếu điều đó vẫn không giúp đỡ, bạn cần phải thêm đường dẫn đến tập tin ld.so.conf (chỉ cần gõ nó ở trên dòng riêng của nó) hoặc tốt hơn, thêm mục nhập vào một tập tin mới (dễ dàng hơn để xóa) trong thư mục ld.so.conf.d.

+17

chạy ldconfig đã giải quyết được sự cố tương tự cho tôi ... – xmoex

+0

'sudo ldconfig' đã giải quyết được sự cố, cảm ơn bạn – Mis94

4

Khi làm việc trên một siêu máy tính, tôi nhận được lỗi này khi tôi chạy:

module load python/3.4.0 
screen 
python 

Để giải quyết các lỗi, tôi chỉ đơn giản là cần thiết để tải lại các module trong thiết bị đầu cuối màn hình:

module load python/3.4.0 
python 
5
sudo ldconfig 

ldconfig tạo liên kết và bộ nhớ cache cần thiết cho thư viện được chia sẻ gần đây nhất und trong các thư mục được chỉ định trên dòng lệnh, trong tập tin /etc/ld.so.conf và trong các thư mục tin cậy (/ lib và/usr/lib).

Thông thường, người quản lý gói quản lý việc này trong khi cài đặt thư viện mới, nhưng không phải lúc nào (đặc biệt khi bạn cài đặt thư viện với cmake).

Và nếu đầu ra của việc này là trống

$ echo $LD_LIBRARY_PATH 

Hãy đặt đường dẫn mặc định

$ LD_LIBRARY_PATH=/usr/local/lib 
Các vấn đề liên quan