2016-12-16 3 views
1

Я использую Ubuntu 14.04, чтобы построить opencv 3.1.0 с cuda 8.0.проблемы со зданием opencv 3.1.0 с поддержкой cuda в ubuntu

команда CMake:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -DOPENCV_EXTRA_MODULES_PATH=/home/lindeyang/library/opencv_contrib/modules .. 

После конфигурации CMake, я начинаю строить, но не с проблемами: "Недостаточно Cuda Runtime библиотеки версии, пожалуйста, обновите его."

Может ли кто-нибудь помочь?

ошибки:

[ 0%] Built target opencv_cudev 
[ 0%] [ 0%] Built target opencv_ts_pch_dephelp 
Building CXX object modules/core/CMakeFiles/opencv_core_pch_dephelp.dir/opencv_core_pch_dephelp.cxx.o 
[ 2%] Built target libwebp 
[ 2%] Built target opencv_imgproc_pch_dephelp 
[ 2%] Built target opencv_imgcodecs_pch_dephelp 
[ 2%] Built target opencv_videoio_pch_dephelp 
[ 2%] Automoc for target opencv_highgui_pch_dephelp 
[ 2%] Automoc for target opencv_highgui 
[ 2%] Built target opencv_perf_core_pch_dephelp 
[ 2%] Built target opencv_highgui_pch_dephelp_automoc 
[ 2%] Built target opencv_highgui_automoc 
[ 2%] Built target opencv_test_core_pch_dephelp 
Scanning dependencies of target opencv_perf_cudaarithm_pch_dephelp 
[ 2%] Scanning dependencies of target opencv_test_cudaarithm_pch_dephelp 
Building CXX object modules/cudaarithm/CMakeFiles/opencv_cudaarithm_pch_dephelp.dir/opencv_cudaarithm_pch_dephelp.cxx.o 
[ 2%] Building CXX object modules/cudaarithm/CMakeFiles/opencv_perf_cudaarithm_pch_dephelp.dir/opencv_perf_cudaarithm_pch_dephelp.cxx.o 
[ 2%] Building CXX object modules/cudaarithm/CMakeFiles/opencv_test_cudaarithm_pch_dephelp.dir/opencv_test_cudaarithm_pch_dephelp.cxx.o 
In file included from /home/lindeyang/library/opencv/modules/core/src/precomp.hpp:56:0, 
       from /home/lindeyang/library/opencv/build/modules/core/opencv_core_pch_dephelp.cxx:1: 
/home/lindeyang/library/opencv/modules/core/include/opencv2/core/private.cuda.hpp:70:6: error: #error "Insufficient Cuda Runtime library version, please update it." 
# error "Insufficient Cuda Runtime library version, please update it." 
    ^
In file included from /home/lindeyang/library/opencv/modules/cudaarithm/src/precomp.hpp:53:0, 
       from /home/lindeyang/library/opencv/build/modules/cudaarithm/opencv_cudaarithm_pch_dephelp.cxx:1: 
/home/lindeyang/library/opencv/modules/core/include/opencv2/core/private.cuda.hpp:70:6: error: #error "Insufficient Cuda Runtime library version, please update it." 
# error "Insufficient Cuda Runtime library version, please update it." 
    ^
make[2]: *** [modules/cudaarithm/CMakeFiles/opencv_cudaarithm_pch_dephelp.dir/opencv_cudaarithm_pch_dephelp.cxx.o] Error 1 
make[1]: *** [modules/cudaarithm/CMakeFiles/opencv_cudaarithm_pch_dephelp.dir/all] Error 2 
make[1]: *** Waiting for unfinished jobs.... 
Linking CXX static library ../../lib/libopencv_test_cudaarithm_pch_dephelp.a 
[ 2%] Built target opencv_test_cudaarithm_pch_dephelp 
Linking CXX static library ../../lib/libopencv_perf_cudaarithm_pch_dephelp.a 
[ 2%] Built target opencv_perf_cudaarithm_pch_dephelp 
make[2]: *** [modules/core/CMakeFiles/opencv_core_pch_dephelp.dir/opencv_core_pch_dephelp.cxx.o] Error 1 
make[1]: *** [modules/core/CMakeFiles/opencv_core_pch_dephelp.dir/all] Error 2 
make: *** [all] Error 2 

изображения присоединенные: [Результаты для deviceQuery ][1]

+0

Возможно ли, что у вас установлено несколько версий CUDA? –

+0

Нет, я только установил cuda 8.0. –

+0

Нет, я только установил cuda 8.0., Драйвер для GTX 960M, который я использую, является последним: 375.26 –

ответ

1

Ю. Лин Ян,

Проблема в том, что у вас есть несколько версий CUDA установлены. Возможно, при обновлении последней версии cuda некоторые файлы из другой версии все еще остаются в вашей системе.

Найти LIBS с помощью команды последующей: dconfig -p | grep libcudart

Этой команда покажет вам версию libcudart на вашей машине. Но удалить старые библиотеки не решит вашу проблему.

Проблема возникает в файле: /opencv/modules/core/include/opencv2/core/private.cuda.hpp Поскольку CUDART_VERSION ниже, чем требуется (CUDART_MINIMUM_REQUIRED_VERSION).

Поиск по/USR/для: grep --include=\*.{c,cpp,h,hpp} -rnw '/usr/' -e "define CUDART_VERSION"

Вероятно, вы нашли актуальную версию в/USR/местные/CUDA/и некоторые включают в себя файлы в/USR/включать /: в этом файле: /usr/include/cuda_runtime_api.h Вы нашли неправильную версию.

Я решаю проблему, сравнивая папки и перезаписывая старые заголовки cuda (/ usr/include /) новым (/ usr/local/cuda/include /).

Другой способ удалить все версии, используя меткое или установки NVIDIA Binary (* .run): sudo apt-get remove --purge nvidia-*

Но вам нужно переустановить все библиотеки снова.

Смежные вопросы