在 Ubuntu 16.04 中测试 CUDA:/usr/bin/ld:找不到 -lnvcuvid

在 Ubuntu 16.04 中测试 CUDA:/usr/bin/ld:找不到 -lnvcuvid

我已按照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'

相关内容