ubuntu - 使用 Cuda 编译 OpenCV 失败

标签 ubuntu opencv cuda cmake

我正在尝试使用 gpu 功能构建 opencv。所以我需要用cuda编译opencv。
我已经下载了opencv,我还用http://wiki.accelereyes.com/wiki/index.php/Installing_CUDA_Under_Ubuntu_10.04 安装了cuda我的 ubuntu 教程。

当我尝试 cmake -D WITH_CUDA=ON在输出上它说

Could NOT find CUDA: Found unsuitable version ".", but required is at least "4.0" (found /usr/local/cuda)



这个问题快把我逼疯了!我无法让它工作!我确信所有环境变量和路径对于 cuda 都是正确的。

您可能会想到什么解决方案?

最佳答案

我自己制作了这个教程(我实际上收集了它)。我在 ubuntu 11.10 上尝试过,我认为这对于像我这样的初学者来说是一个好的开始。希望有点用。

1-CUDA 不适用于 gcc 4.5 或更高版本,因此如果您的 gcc 版本更高,您应该安装 gcc 4.4:

$ sudo apt-get install build-essential gcc-4.4 g++-4.4

2-现在下载并安装适当的 CUDA 驱动程序:
$ sudo apt-get install \
nvidia-current \
nvidia-current-dev \
nvidia-current-updates \
nvidia-current-updates-dev

3-从 nvidia 网站 (http://developer.nvidia.com/cuda-downloads) 下载 CUDA 工具包和 SDK
请注意,某些版本的 CUDA 驱动程序仅适用于特定版本的工具包(例如(驱动程序 280.13 可与工具包 4.0 或更低版本一起使用)。因此,如果您遇到指示 CUDA 驱动程序和运行时不匹配的错误消息,您应该返回并安装低版本的工具包,不要担心在重新安装过程中它会删除之前的工具包,即使它是更高版本的。
您可以通过以下方式检查 CUDA 驱动程序版本:
$ cat /proc/driver/nvidia/version

您可以通过以下方式检查工具包版本:
nvcc –version

4-复制并安装刚刚下载的两个 .run 文件:
$ chmod +x (文件名)
$ ./(文件名)

5-要编译 SDK 示例,您还需要这个:
$ sudo apt-get install freeglut3-dev libxi-dev

并创建这些链接
sudo ln -s /usr/lib/libXmu.so.6 /usr/lib/libXmu.so
sudo ln -s /usr/lib/nvidia-173/libGL.so /usr/lib/libGL.so

6-将 CUDA 添加到您的路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/cuda/lib64

7-现在添加库路径:
cat /etc/ld.so.conf.d/nvidia_settings.conf  \
/usr/lib/nvidia-setting  \
/usr/local/cuda/lib64 \
/usr/local/cuda/lib

sudo ldconfig

8-现在转到 NVIDIA_GPU_COMPUTING_SDK_... 文件夹并使用 vim 等文本编辑器打开文件 C/common/common.mk 并更改以下行:
LINKFLAGS  +=


LINKFLAGS += -L/usr/lib/nvidia-current


NVCCFLAGS :=

NVCCFLAGS := -ccbin/usr/bin/gcc-4.4

9-最后你应该编译并运行一个例子来确认安装完成。再次转到 NVIDIA_GPU_COMPUTING_SDK 文件夹并运行 make:
sudo make

要运行示例,请转到 NVIDIA_GPU_COMPUTING_SDK/C/bin/linux/release
并通过以下方式运行示例:
./(文件夹中文件之一的名称)

10-稍后,当您想编写自己的 CUDA 程序时,您应该编辑 NVIDIA_GPU_COMPUTING_SDK 文件夹中的示例之一,并像刚刚为示例所做的那样编译它。

以下是一些您可以引用的网站:

Source1
Source2

关于ubuntu - 使用 Cuda 编译 OpenCV 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008664/

相关文章:

python - OpenCV - 调整照片倾斜角度(倾斜)

python - 想要检测图像的模糊,但无法正确处理

c++ - JCuda全局共享内存导致错误

python - "substring not found"即使它包含在命令行上传递的参数中

php - 如何修复可能由操作系统导致的 "http_client.c(227) Error creating a socket"错误

c - 在 Opencv 中使用 HSV 值检测眼睛

cuda - RTX 2080 Ti cuda-memcheck 在创建 Cublas 上下文开始时遇到错误

Cuda C - 链接器错误 - undefined reference

Linux Ubuntu : Script works in terminal, 但不是 .sh

linux - 如何使用 bash shell 脚本检查文本文件中 URL 的状态