【发布时间】:2015-09-26 10:58:28
【问题描述】:
在 Ubuntu 上,我之前安装了 CUDA 6.5,并想升级到 CUDA 7.0。因此,我删除了 /usr/local/cuda-6.5 的目录,并将 CUDA 7.0 安装到 /usr/local/cuda-7.0 中。然后我将 /usr/local/cuda 的符号链接更改为指向 /usr/local/cuda-7.0。在我的 bash.rc 文件中,我还相应地更新了环境变量:
export CUDA_HOME=/usr/local/cuda-7.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
如果我输入“nvcc --version”,那么我会按预期得到以下内容:
Cuda compilation tools, release 7.0, V7.0.27
但是,我现在正在编译一些使用 CUDA 的代码(准确地说是 Caffe 深度学习库),我收到以下错误消息:
error while loading shared libraries: libcudart.so.6.5: cannot open shared object file: No such file or directory
因此,出于某种原因,它仍在寻找 CUDA 6.5 库,而不是 CUDA 7.0 库。为什么是这样?如何告诉编译器查找 7.0 库?我在正在编译的源代码中找不到任何对 libcudart.so.6.5 的引用,因此 CUDA 编译器本身正在寻找错误的版本。
【问题讨论】:
-
您发布的错误消息发生在运行时,而不是编译时。这意味着您的项目的某些方面仍然针对 CUDA 6.5 进行编译/链接。如果您正在编译的代码具有正确的 Makefile,那么执行
make clean然后make应该可以纠正此问题。 -
这似乎是编译时间——因为错误发生在我运行
make之后,而不是在它编译之后我尝试运行编译后的程序......
标签: ubuntu compilation cuda gpu nvidia