У меня установлены две версии CUDA: 7.0 и 7.5. Они расположены в /usr/local/cuda-7.0
и /usr/local/cuda-7.5
соответственно. У меня также есть символическая ссылка в /usr/local/cuda
, которая указывает на /usr/local/cuda-7.5
. У меня также установлен OpenCV 3.0, который я скомпилировал из исходного кода.
В моем проекте C ++ мой файл CMakeLists.txt
содержит строку find_package(OpenCV REQUIRED)
. Однако при запуске cmake
я получаю следующую ошибку:
Trying to find version: 7.0
CMake Error at /usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find CUDA: Found unsuitable version "7.5", but required is exact
version "7.0" (found /usr/local/cuda)
Call Stack (most recent call first):
/usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:372 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.2/Modules/FindCUDA.cmake:855 (find_package_handle_standard_args)
/usr/local/share/OpenCV/OpenCVConfig.cmake:49 (find_package)
/usr/local/share/OpenCV/OpenCVConfig.cmake:274 (find_host_package)
CMakeLists.txt:8 (find_package)
Я очень смущен тем, что это пытается мне сказать. Является ли OpenCV скомпилированным с CUDA 7.0, и поэтому, когда я запускаю find_package(OpenCV REQUIRED)
, он также пытается найти CUDA 7.0, но он может найти только CUDA 7.5? Если это так, то почему он не может найти CUDA 7.0, если он у меня установлен? Или это связано с символической ссылкой? Или, может быть, FindCUDA.cmake
?
Спасибо за любую помощь!