我已按照NVIDIA CUDA 安装指南并且我已经安装了 CUDA,没有任何警告或错误。
当我尝试编译 CUDA 工具包中提供的示例时,出现了问题。引用上一指南中的专门章节:“您应该通过更改为~/NVIDIA_CUDA-8.0_Samples
并键入来编译它们make
”。
输出包括以下内容:
/usr/bin/ld: cannot find -lnvcuvid
阅读相关问题后“/usr/bin/ld:找不到-lcudart”和Stack Overflow 上的这个,我检查了 lnvcuvid 是否存在,显然该文件丢失了。
$ ls /usr/local/cuda/lib64
libcublas_device.a libcusparse_static.a libnppisu.so
libcublas.so libnppc.so libnppisu.so.8.0
libcublas.so.8.0 libnppc.so.8.0 libnppisu.so.8.0.61
libcublas.so.8.0.61 libnppc.so.8.0.61 libnppitc.so
libcublas_static.a libnppc_static.a libnppitc.so.8.0
libcudadevrt.a libnppial.so libnppitc.so.8.0.61
libcudart.so libnppial.so.8.0 libnpps.so
libcudart.so.8.0 libnppial.so.8.0.61 libnpps.so.8.0
libcudart.so.8.0.61 libnppicc.so libnpps.so.8.0.61
libcudart_static.a libnppicc.so.8.0 libnpps_static.a
libcufft.so libnppicc.so.8.0.61 libnvblas.so
libcufft.so.8.0 libnppicom.so libnvblas.so.8.0
libcufft.so.8.0.61 libnppicom.so.8.0 libnvblas.so.8.0.61
libcufft_static.a libnppicom.so.8.0.61 libnvgraph.so
libcufftw.so libnppidei.so libnvgraph.so.8.0
libcufftw.so.8.0 libnppidei.so.8.0 libnvgraph.so.8.0.61
libcufftw.so.8.0.61 libnppidei.so.8.0.61 libnvgraph_static.a
libcufftw_static.a libnppif.so libnvrtc-builtins.so
libcuinj64.so libnppif.so.8.0 libnvrtc-builtins.so.8.0
libcuinj64.so.8.0 libnppif.so.8.0.61 libnvrtc-builtins.so.8.0.61
libcuinj64.so.8.0.61 libnppig.so libnvrtc.so
libculibos.a libnppig.so.8.0 libnvrtc.so.8.0
libcurand.so libnppig.so.8.0.61 libnvrtc.so.8.0.61
libcurand.so.8.0 libnppim.so libnvToolsExt.so
libcurand.so.8.0.61 libnppim.so.8.0 libnvToolsExt.so.1
libcurand_static.a libnppim.so.8.0.61 libnvToolsExt.so.1.0.0
libcusolver.so libnppi.so libOpenCL.so
libcusolver.so.8.0 libnppi.so.8.0 libOpenCL.so.1
libcusolver.so.8.0.61 libnppi.so.8.0.61 libOpenCL.so.1.0
libcusolver_static.a libnppi_static.a libOpenCL.so.1.0.0
libcusparse.so libnppist.so stubs
libcusparse.so.8.0 libnppist.so.8.0
libcusparse.so.8.0.61 libnppist.so.8.0.61
但是,我不知道从哪里可以安全地获取文件,所以我陷入困境。无论如何:
- nvcc 已添加到 PATH 中。
- 在 usr/local 中,我有 cuda 和 cuda-8.0 文件夹。我不确定这是否正常。
答案1
答案在帖子#17中提供这里。为了方便您使用,我复制粘贴了以下内容:
一个偷懒的解决方法是运行(对于 cuda 8.0):
find . -type f -execdir sed -i 's/UBUNTU_PKG_NAME = "nvidia-367"/UBUNTU_PKG_NAME = "nvidia-375"/g' '{}' \;
在 ~/NVIDIA_CUDA-8.0_Samples/ 中。
答案2
我遇到了同样的问题,我的解决方案与 MLguy 的解决方案相同:libnvcuvid.so
在 中创建一个符号链接/usr/lib/
。
sudo ln -s /usr/lib/nvidia-367/libnvcuvid.so /usr/lib/libnvcuvid.so
sudo ln -s /usr/lib/nvidia-367/libnvcuvid.so.1 /usr/lib/libnvcuvid.so.1
其中 nvidia-367 取决于您的计算机设置。
为了使该命令适合您的计算机,此命令可能会有所帮助:find /usr/ -name 'libnvcuvid.so'