当前位置:编程学习 > C/C++ >>

CUDA函数库调用问题解决

问题:
 
装好CUDA5.5, samples也安装成功,编译也成功了,但是在运行程序的时候出问题了。
 
譬如进入NVIDIA_CUDA-5.5_Samples/7_CUDALibraries/ 目录中,执行 ./conjugateGradientPrecond 
 
结果报错了,居然报错了:
 
./conjugateGradientPrecond: error while loading shared libraries: libcublas.so.5.5: cannot open shared object file: No such file or directory
 
解决:
 
首先找到libcublas.so.5.5  这个文件在哪里,在我的系统Ubuntu12.04,文件在  /usr/local/cuda-5.5/lib64/ 目录下。
 
然后 sudo vim /etc/ld.so.conf.d/cuda_lib.conf
在文档里添加目录 /usr/local/cuda-5.5/lib64/   
 
写完后,然后 sudo ldconfig.  
 
记住一定要用sudo,除非你在root下。
 
解释:
 
程序在编译的时候需要library,在执行的时候更需要library.   LD_LIBRARY_PATH是编译时bash shell可以设定的环境变数,
 
但是程序在运行时,不一定会读取到这个变数,所以就要设定/etc/ld.so.conf.
 
但是通常我们会把费系统预设安装的函数库放在/etc/ld.so.conf里面,也就是说,今天cuda5.5的library的真实路径是
 
  /usr/local/cuda-5.5/libXX
 
这个路径放在ld.conf可以读取到的地方。一般系统管理员的习惯会在ld.so.conf.d这个目录下再新增一个档案。档案名称就是XXX.conf
 
然后把library的path加入到这个档案里面,然后再ldconfig,系统就会重新设定。
 
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,