我刚刚从 CUDA 4.2 升级到 CUDA 5.0。毫不奇怪,曾经被命名的库libcudart.so.4
现在被称为libcudart.so.5.0
. 使用 nvcc 5.0 重新编译我的代码并尝试运行代码后,我收到以下消息:
./main: error while loading shared libraries: libcudart.so.4: cannot open shared object file: No such file or directory
是的,你这个愚蠢的系统,我知道没有libcudart.so.4
。那是因为它现在被称为libcudart.so.5.0
. 为什么要寻找libcudart.so.4
而不是libcudart.so.5.0
,我该如何解决?
到目前为止我已经尝试过:
我已经检查过我的所有路径都井井有条。设置了这些环境变量:
export PATH=$PATH:/usr/local/cuda/bin:/usr/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/cuda/lib64:/lib
#note: /usr/local/cuda is symlinked to /usr/local/cuda-5.0
我已经验证libcudart.so.5.0
可以在其中一个LD_LIBRARY_PATH
目录中找到它。
我使用 CUDA 5.0 版本重新编译了我的 CUDA 应用程序nvcc
。我在另一台装有 CUDA 4.2 的机器上和另一台装有 CUDA 4.0 的机器上成功编译并运行了我的应用程序。
我确认这nvcc
确实在 5.0 版上:
user@host$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Fri_Sep_21_17:28:58_PDT_2012
Cuda compilation tools, release 5.0, V0.2.122