Я компилирую OpenCV 3.0.0 с поддержкой CUDA в Windows, используя CMAKE. Когда я нажимаю «Configure», возникают ошибки следующим образом:CMake: библиотеки CUDA не найдены при компиляции OpenCV
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cufft_LIBRARY (ADVANCED)
linked by target "opencv_hal" in directory E:/dev-lib/opencv3/sources/modules/hal
...
CUDA_nppc_LIBRARY (ADVANCED)
...
CUDA_nppi_LIBRARY (ADVANCED)
...
CUDA_npps_LIBRARY (ADVANCED)
Я проверил «WITH_CUDA» и «WITH_CUFFT» в записи. Если я также проверю «WITH_CUBLAS», выходы выше добавят еще одну ошибку CUDA_cublas_LIBRARY
.
Но прежде, чем все эти сообщения об ошибках, это показывает, что
CUDA detected: 7.5
CUDA NVCC target flags: -gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=sm_21;-gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_30,code=compute_30
, который указывает на то CUDA может быть обнаружен CMake. Однако эти 4 библиотеки не могут быть найдены.
Я установил CUDA 7.5 и скомпилировал его с Visual Studio 2012 раньше. Образцы CUDA отлично работают. Поэтому мои библиотеки CUDA должны быть установлены правильно.
Интересно, даже если мне нужно установить эти значения вручную, как мне это сделать?
Мои данные: Windows 7 x64, Visual Studio 2012, CMake 3.4.0, CUDA Toolkit 7.5
Вы настраиваете архитектуру x86 или x86_64? Есть ли причина не использовать предварительно скомпилированные двоичные файлы и использовать компилятор 4 года? – Drop
Я не уверен, как выбирать между x86 или x86_64 в CMAKE. Я думал, что он находится на стадии компиляции всего проекта с использованием MSVC. Что касается VS2012, я использую его сейчас, и он все еще отлично работает. @ Drop –
Нет, в созданном проекте будет только одна платформа. Если вы используете cmake-gui, вы можете выбрать toolchain + platform во всплывающем окне сразу после того, как вы нажмете «Настроить» в первый раз. Вам нужно удалить кэш CMake (в меню «Файл») или просто удалить фальсификатор сборки, чтобы он мог снова выбрать другую платформу. Nvidia предоставляет только 'cufft' и' nppi' для 64-битной платформы (проверьте ' \ lib \ ' папку). –
Drop