在 Ubuntu 16.04 中安装 CUDA 8.0 后运行 CUDA 示例时出现错误

在 Ubuntu 16.04 中安装 CUDA 8.0 后运行 CUDA 示例时出现错误

我刚刚在 Ubuntu 16.04 中安装了 CUDA 8.0

安装后,我尝试运行示例,但当我创建目录 NVIDIA_CUDA-8.0_Samples 并运行命令时make,出现此错误

$make

...

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
/usr/bin/ld: cannot find -lnvcuvid
collect2: error: ld returned 1 exit status
Makefile:381: recipe for target 'cudaDecodeGL' failed
make[1]: *** [cudaDecodeGL] Error 1
make[1]: Leaving directory '/home/mukesh/NVIDIA_DIR/NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL'
Makefile:52: recipe for target '3_Imaging/cudaDecodeGL/Makefile.ph_build' failed
make: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2

然后我搜索了错误并在这里找到了解决方案:

安装 cuda 8.0 后无法运行 CUDA 示例

所以我运行了命令

~/NVIDIA_CUDA-8.0_Samples/$find . -type f -execdir sed -i 's/UBUNTU_PKG_NAME = "nvidia-367"/UBUNTU_PKG_NAME = "nvidia-375"/g' '{}' \;

运行此程序后,我再次尝试运行make,但仍然出现错误

collect2: error: ld returned 1 exit status
Makefile:270: recipe for target 'marchingCubes' failed
make[1]: *** [marchingCubes] Error 1
make[1]: Leaving directory '/home/mukesh/NVIDIA_DIR/NVIDIA_CUDA-8.0_Samples/2_Graphics/marchingCubes'
Makefile:52: recipe for target '2_Graphics/marchingCubes/Makefile.ph_build' failed
make: *** [2_Graphics/marchingCubes/Makefile.ph_build] Error 2

请帮我摆脱它。

谢谢

答案1

卸载您现在拥有的所有 nvidia 驱动程序,检查 /etc/modprobe.d 中的所有文件中的所有“blacklist nouveau”行是否都已删除,重新启动,然后您应该可以使用 nouveau 驱动程序。现在使用软件更新程序选择 Nvidia 375.66,完成后,再次重新启动,然后您应该可以运行该 Nvidia 驱动程序。现在,CUDA 安装(使用两个推荐的 PATH 和 LD_LIBRARY_PATH 模块)将找到所需的库。我也会卸载 CUDA 软件包,这样您就可以在 Nvidia 就位的情况下重新安装它们,但在执行此操作之前,请尝试编译。


检查“缺失”库是否确实位于 /usr/lib/nvidia-375 中。检查您的 .../cudaDecodeGL/findgllib.mk 是否有以下行

 UBUNTU_PKG_NAME = "nvidia-375"

检查您的 PATH 变量是否以 /usr/local/cuda/bin: 开头
,并且您的 LS_LIBRARY_PATH 是否以 /usr/local/cuda/lib64 开头
(或您安装 cuda 的任何位置)。这应该是运行 cudaDecodeGL 所需的全部内容。许多其他示例甚至不需要此修复,例如 marchingCubes。如果您的链接仍然无法获取库,请检查 /etc/ld.so.conf.d 是否包含一个名为 cuda-8-0.conf 的文件,其内容如下:

   /usr/local/cuda-8.0/targets/x86_64-linux/lib  

(或者在您安装 cuda 的 /usr/local 之外的任何位置)。该创建应该是自动的,.deb 文件安装会执行此操作,无法确定其他方法是否可行。

相关内容