【发布时间】:2017-08-30 15:38:12
【问题描述】:
我正在尝试在 Ubuntu 14.04 上安装 CUDA 7.0。我已按照here 概述的安装说明进行操作。具体来说,我已按照第 3.6 节和第 6 章中的步骤进行操作。在使用 make 编译示例(第 6.2.2.2 节)时,我收到以下错误:
make[1]: Entering directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL'
/usr/local/cuda-7.0/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_20,
code=compute_20 -o cudaDecodeGL FrameQueue.o ImageGL.o VideoDecoder.o
VideoParser.o VideoSource.o cudaModuleMgr.o cudaProcessFrame.o
videoDecodeGL.o -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-346"
-lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW -lcuda -lcudart -lnvcuvid
/usr/bin/ld: cannot find -lnvcuvid
collect2: error: ld returned 1 exit status
make[1]: *** [cudaDecodeGL] Error 1
make[1]: Leaving directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL'
make: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2
【问题讨论】:
-
在 6.3.1 节中提到了需要额外的库来构建一些示例的事实。对于 ubuntu,尝试:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev并且您可能会遇到需要其他组件的其他示例(例如 simpleMPI)。如果您不关心这些特定示例,您可以通过make -k继续示例构建过程,有效地跳过那些不会构建的示例。 -
抱歉,以上内容与您的问题无关。 libnvcuvid.so 应该已经由驱动程序安装在
/usr/lib的某个位置,您使用的包管理器安装似乎没有将它放在这个 Makefile 期望在/usr/lib/"nvidia-346"中找到它的位置这并不容易修复。如果你不关心这个样本,你仍然可以使用make -k。否则,我建议从干净的 ubuntu 负载重新开始,并使用运行文件安装程序方法。您可能没有在包管理器安装方法中使用正确的 ubuntu 14.04 存储库。 -
感谢@RobertCrovella 的回复。我在
/usr/lib/nvdia-331中找到了 libnvcuvid.so。现在需要做什么?如果我必须通过运行文件安装程序方法安装,那么如何卸载通过包管理器安装方法安装的所有 Cuda 组件?另外,我需要卸载它们吗? -
一般来说runfile方法和包管理器方法是不兼容的。 CUDA 7 应该尝试使用 346.xx 驱动程序,因此 nvidia-331 不正确,它是 ubuntu 附带的东西或以前通过包管理器方法完成的东西留下的。如果您想使用 CUDA 7 运行文件安装,我将首先删除所有旧的包管理器组件。
-
类似这样的: 1.
sudo service lightdm stop2.sudo apt-get --purge remove nvidia-*3.sudo apt-get purge xserver-xorg-video-nouveau4.sudo echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/disable-nouveau.conf5.sudo update-initramfs –u然后运行或重新运行 CUDA 7 linux 运行文件安装程序。
标签: cuda ubuntu-14.04