OpenCV 2.4.9和CUDA 6.5
我最近升级到了CUDA 6.5,并在Ubuntu 14.04上成功地重新编译了OpenCV 2.4.9 然而,当我使用OpenCV和cmake重新编译我的项目时,我得到了以下配置错误: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
-- 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。