我遇到了火炬群集的头节点上找不到的共享库。我已经构建了库以及指定库的正确路径,同时用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
答案 0 :(得分:87)
从我的回答中复制:https://stackoverflow.com/a/9368199/485088
以root身份运行
ldconfig
以更新缓存 - 如果仍然没有帮助,则需要添加文件ld.so.conf
的路径(只需在自己的行中输入)或更好然后,将条目添加到目录ld.so.conf.d
中的新文件(更容易删除)。
答案 1 :(得分:72)
您的LD_LIBRARY_PATH
未包含libsvmlight.so
的路径。
$ export LD_LIBRARY_PATH=/home/tim/program_files/ICMCluster/svm_light/release/lib:$LD_LIBRARY_PATH
答案 2 :(得分:8)
row
ldconfig创建必要的链接并缓存到命令行,文件/etc/ld.so.conf和受信任目录(/ lib和/ usr /)中指定的目录中找到的最新共享库。 LIB)。
通常,软件包管理器在安装新库时会对此进行处理,但并非总是如此(特别是当您使用sudo ldconfig
安装库时)。
如果输出为空
cmake
请设置默认路径
$ echo $LD_LIBRARY_PATH
答案 3 :(得分:4)
在使用超级计算机时,我在运行时收到此错误:
module load python/3.4.0
screen
python
要解决错误,我只需要在屏幕终端重新加载模块:
module load python/3.4.0
python