我正在尝试运行我的Cuda SDK示例,但是我遇到了以下错误:
./bandwidthTest: error while loading shared libraries:
libcudart.so.4: cannot open shared object file:
No such file or directory
为什么我可以成功编译这个例子,但无法运行它?有没有办法手动指定CUDA运行时库的路径?尝试执行以下命令:
32位系统: sudo ldconfig /usr/local/cuda/lib
64位系统: sudo ldconfig /usr/local/cuda/lib64
祝好运!
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
有关吗? - SolessChong首先,您需要将CUDA二进制文件和库的路径连接起来。只需将以下行添加到您的.bashrc文件中即可完成此操作。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=:/usr/local/cuda/lib64
如果您使用的是32位操作系统,请将lib64更改为lib。ln -s /usr/lib64/nvidia/libcuda.so.somenumber /usr/lib64/libcuda.so
ln -s /usr/lib64/nvidia/libOpenCL.so.somenumber /usr/lib64/libOpenCL.so
这将使您能够编译SDK中的所有源代码。
从Cuda 5.5和Ubuntu 12.04/12.10开始,64位系统的命令应该如下所示(请注意Ubuntu和Cuda目录的更改)
ln -s /usr/local/cuda/lib64/libcuda.so.5.5 /usr/lib/libcuda.so.5.5
也就是说,在Ubuntu 12.04上,lib文件夹分为lib32和lib两个,64位的已经默认包含在内,而cuda 5.5及以上版本现在会安装到不同的目录下。
加载共享库时出现1个错误:libcudart.so.6.0: 无法打开共享对象文件:没有那个文件或目录
32-bit: sudo ldconfig /usr/local/cuda/lib
64-bit: sudo ldconfig /usr/local/cuda/lib64
(参考: http://blog.csdn.net/shenchong721/article/details/21529295)
适用于我!
LD_LIBRARY_PATH已被强烈废弃。它可能会干扰其他程序,也可能被其他程序重置。它应该仅用于临时覆盖永久路径以进行测试目的(不信,请谷歌)。
相反,将您的cuda库目录添加到/etc/ld.so.conf中的一行中,在任何现有行之后。
例如,如果您安装在/usr/local/cuda上,则需要添加
32位:/usr/local/cuda/lib
64位:/usr/local/cuda/lib64
保存并运行ldconfig。这应该永久修复问题。
符号链接可能已经由安装设置好了。如果没有,请按照Alex建议的添加。
注意-我收到引用/lib的错误,但我需要添加lib64来解决它们。
在/etc/ld.so.conf.d/中创建一个nvidia_settings.conf文件,并在该文件中添加库的路径。
/usr/local/cuda/lib64
/usr/local/cuda/lib
现在要更新更改,请运行以下命令:
sudo ldconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
或者如果您在64位机器上运行cuda-5.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64
libcudart.so.7: cannot open shared object file
CUDA已在所有节点中正确安装。 此外,与先前的答案一样,变量$PATH和$LD_LIBRARY_PATH分别指向二进制文件和库。
在MPI命令中传递$PATH和$LD_LIBRARY_PATH解决了该问题。
mpirun -x PATH=$PATH -x LD_LIBRARY_PATH=$LD_LIBRARY_PATH ...
系统使用ld工具查找库。正如顶部答案所说,64位:sudo ldconfig /usr/local/cuda-xx/lib64 ;;xx是cuda库版本
g++
的参数。如果是在运行时遇到,那么我认为这个问题不适合在SO上讨论。 - Drew Chapin