加载共享库时出错:libOpenCL.so.1:无法打开共享对象文件:没有这样的文件或目录

加载共享库时出错:libOpenCL.so.1:无法打开共享对象文件:没有这样的文件或目录

当我尝试执行大学作业的框架时,我得到

$ ./Assignment 
./Assignment: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory

我在大学使用电脑。这意味着我没有 root 访问权限。但是,如果我能说出问题到底是什么,管理员可能会帮助我。

  • CUDA 似乎已安装(nvidia-smi并且nvcc --help两者都可以工作)。
  • libOpenCl.so系统上存在

有关我的系统的信息

$ echo $LD_LIBRARY_PATH
:/opt/cuda-7.5/lib64:/home/stud/s_thoma/cuda

$ echo $LIBGL_DRIVERS_PATH
:/home/stud/s_thoma/cuda:/opt/cuda-7.5/lib64:/home/stud/s_thoma/cuda

/opt/cuda-7.5/lib64$ ls
libcublas_device.a   libcuinj64.so.7.5.18   libnppi.so.7.5.18
libcublas.so         libculibos.a           libnppi_static.a
libcublas.so.7.5     libcurand.so           libnpps.so
libcublas.so.7.5.18  libcurand.so.7.5       libnpps.so.7.5
libcublas_static.a   libcurand.so.7.5.18    libnpps.so.7.5.18
libcudadevrt.a       libcurand_static.a     libnpps_static.a
libcudart.so         libcusolver.so         libnvblas.so
libcudart.so.7.5     libcusolver.so.7.5     libnvblas.so.7.5
libcudart.so.7.5.18  libcusolver.so.7.5.18  libnvblas.so.7.5.18
libcudart_static.a   libcusolver_static.a   libnvrtc-builtins.so
libcufft.so          libcusparse.so         libnvrtc-builtins.so.7.5
libcufft.so.7.5      libcusparse.so.7.5     libnvrtc-builtins.so.7.5.18
libcufft.so.7.5.18   libcusparse.so.7.5.18  libnvrtc.so
libcufft_static.a    libcusparse_static.a   libnvrtc.so.7.5
libcufftw.so         libnppc.so             libnvrtc.so.7.5.17
libcufftw.so.7.5     libnppc.so.7.5         libnvToolsExt.so
libcufftw.so.7.5.18  libnppc.so.7.5.18      libnvToolsExt.so.1
libcufftw_static.a   libnppc_static.a       libnvToolsExt.so.1.0.0
libcuinj64.so        libnppi.so             libOpenCL.so
libcuinj64.so.7.5    libnppi.so.7.5         stubs

~/cuda$ ls
libOpenCL.so.1

$ uname -a
Linux i08pc71 4.0.4-303.ATIS.aufs4.0.fc22.x86_64 #1 SMP Wed Jun 3 13:02:20 CEST 2015 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/issue
Fedora release 22 (Twenty Two)
Kernel \r on an \m (\l)

答案1

strace将帮助您调试问题。它将显示动态链接器在何处查找 libOpenCL.so.1。请注意,您的目录中可能会出现损坏的符号链接~/cuda

要正确测试这一点,请安装或以其他方式获取 strace 二进制文件,然后运行:

strace -f -v -s150 ./Assignment 2>&1 | fgrep libOpenCL.so.1

相关内容