Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV 2.4.9和CUDA 6.5_Opencv_Cmake - Fatal编程技术网

OpenCV 2.4.9和CUDA 6.5

OpenCV 2.4.9和CUDA 6.5,opencv,cmake,Opencv,Cmake,我最近升级到了CUDA 6.5,并在Ubuntu 14.04上成功地重新编译了OpenCV 2.4.9 然而,当我使用OpenCV和cmake重新编译我的项目时,我得到了以下配置错误: -- GCC detected, adding compile flags CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message): Could NOT find CUDA: F

我最近升级到了CUDA 6.5,并在Ubuntu 14.04上成功地重新编译了OpenCV 2.4.9

然而,当我使用OpenCV和cmake重新编译我的项目时,我得到了以下配置错误:

-- GCC detected, adding compile flags
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
  Could NOT find CUDA: Found unsuitable version "6.5", but required is exact
  version "6.0" (found /usr/local/cuda-6.5)
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:313 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-2.8/Modules/FindCUDA.cmake:806 (find_package_handle_standard_args)
  /usr/local/share/OpenCV/OpenCVConfig.cmake:215 (find_package)
  CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/andrey/Data/Projects/Groups_code/Lulu/build-Ubuntu/CMakeFiles/CMakeOutput.log".
怎么修这个?是否需要重新安装cmake或升级cmake中的模块文件?

尝试删除cmake缓存。
“文件”->“删除缓存”。然后像往常一样“配置”、“生成”。

根据我的经验,当使用CUDA的某个版本构建OpenCV时,它在文件
/usr/local/share/OpenCV/OpenCVConfig.cmake
中指定。如果您在构建OpenCV后更改了CUDA的版本,那么使用新的CUDA版本重建OpenCV应该可以解决此问题。这将基本上将新版本重写为
/usr/local/share/OpenCV/OpenCVConfig.cmake

此外,在调用
find\u package(OpenCV)
之后,您似乎正在调用
find\u package(CUDA)
。这迫使cmake寻找构建OpenCV的CUDA版本。如果在
find\u package(OpenCV)
之前调用
find\u package(CUDA)
,您可能会看到如下内容:

-- Found CUDA: /usr/local/cuda-6.5 (found version "6.5") 
CMake Error at /usr/local/share/OpenCV/OpenCVConfig.cmake:222 (message):
  OpenCV static library was compiled with CUDA 6.0 support.  Please, use the
  same version or rebuild OpenCV with CUDA 6.5
Call Stack (most recent call first):
  CMakeLists.txt:49 (find_package)

OpenCV源代码多年来一直在使用不同版本的CUDA进行更改,因此版本不匹配可能会导致出现问题。因此,修复此问题的建议方法是重建OpenCV。

我创建一个新的构建目录并运行cmake../src。它仍然有相同的错误。我有相同的问题,我通过删除缓存解决了它(在GUI中),然后设置复选框“高级”,并在CUDA组将所有CUDA版本更改为6.5。