Error when compiling OpenCV

Hello. I am trying to compile OpenCV with CUDA support on my system.

My system is:

  • OS: Ubuntu 24.04
  • CUDA: 12.9 (/usr/local/cuda-12.9)
  • cuDNN: 9.x (libraries in /usr/lib/x86_64-linux-gnu, heads in /usr/include/x86_64-linux-gnu)
  • GCC: 12.3.0
  • GPU: 6x NVIDIA GTX 1080 Ti (Compute Capability 6.1)
  • LD_LIBRARY_PATH in ~/.bashrc: /usr/lib/x86_64-linux-gnu:/usr/local/cuda-12.9/lib64

Params for building:

cmake -D WITH_CUDA=ON
-D WITH_CUDNN=ON
-D OPENCV_DNN_CUDA=ON
-D CUDA_ARCH_BIN=6.1
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.9
-D CUDNN_LIBRARY=/usr/lib/x86_64-linux-gnu/libcudnn.so
-D CUDNN_INCLUDE_DIR=/usr/include/x86_64-linux-gnu
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D WITH_TBB=ON
-D WITH_OPENMP=ON
-D WITH_FFMPEG=ON
-D WITH_GSTREAMER=ON
-D BUILD_EXAMPLES=OFF
-D BUILD_TESTS=OFF
-D BUILD_PERF_TESTS=OFF
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local ..

When I starting a compiler I have an error:

[  9%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/copy.cpp.o
cd /home/olegb/opencv/build/modules/core && /usr/bin/c++ -DCVAPI_EXPORTS -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE="long long" -DOPENCV_WITH_ITT=1 -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/olegb/opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I/home/olegb/opencv/build/3rdparty/ippicv/ippicv_lnx/iw/include -I/home/olegb/opencv/build -I/home/olegb/opencv/modules/core/include -I/home/olegb/opencv/build/modules/core -I/home/olegb/opencv_contrib/modules/cudev/include -I/home/olegb/opencv/3rdparty/include/opencl/1.2 -I/home/olegb/opencv/3rdparty/ittnotify/include -isystem /usr/local/cuda-12.9/include -isystem /usr/include/eigen3 -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-undef -Wno-enum-compare -Wno-unused-function -Wno-shadow -O3 -DNDEBUG  -DNDEBUG -std=c++11 -fPIC -MD -MT modules/core/CMakeFiles/opencv_core.dir/src/copy.cpp.o -MF CMakeFiles/opencv_core.dir/src/copy.cpp.o.d -o CMakeFiles/opencv_core.dir/src/copy.cpp.o -c /home/olegb/opencv/modules/core/src/copy.cpp
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/channels.cpp:6:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/batch_distance.cpp:6:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/array.cpp:49:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/arithm.cpp:50:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/convert_scale.dispatch.cpp:6:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/convert_c.cpp:6:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/check.cpp:5:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/convert.dispatch.cpp:5:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/bindings_utils.cpp:5:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/algorithm.cpp:43:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/conjugate_gradient.cpp:42:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/copy.cpp:49:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/alloc.cpp:43:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/command_line_parser.cpp:4:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/async.cpp:5:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
In file included from /home/olegb/opencv/modules/core/src/precomp.hpp:60,
                 from /home/olegb/opencv/modules/core/src/arithm.dispatch.cpp:5:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp: In constructor ‘cv::cuda::NppStreamHandler::NppStreamHandler(cudaStream_t)’:
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:150:25: error: ‘nppGetStreamContext’ was not declared in this scope; did you mean ‘nppStreamContext’?
  150 |             nppSafeCall(nppGetStreamContext(&nppStreamContext));
      |                         ^~~~~~~~~~~~~~~~~~~
/home/olegb/opencv/modules/core/include/opencv2/core/private.cuda.hpp:137:52: note: in definition of macro ‘nppSafeCall’
  137 | #define nppSafeCall(expr)  cv::cuda::checkNppError(expr, __FILE__, __LINE__, CV_Func)
      |                                                    ^~~~
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1663: modules/core/CMakeFiles/opencv_core.dir/src/channels.cpp.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1621: modules/core/CMakeFiles/opencv_core.dir/src/batch_distance.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1733: modules/core/CMakeFiles/opencv_core.dir/src/convert_c.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1593: modules/core/CMakeFiles/opencv_core.dir/src/array.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1537: modules/core/CMakeFiles/opencv_core.dir/src/algorithm.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1747: modules/core/CMakeFiles/opencv_core.dir/src/convert_scale.dispatch.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1677: modules/core/CMakeFiles/opencv_core.dir/src/check.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1565: modules/core/CMakeFiles/opencv_core.dir/src/arithm.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1719: modules/core/CMakeFiles/opencv_core.dir/src/convert.dispatch.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1705: modules/core/CMakeFiles/opencv_core.dir/src/conjugate_gradient.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1761: modules/core/CMakeFiles/opencv_core.dir/src/copy.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1551: modules/core/CMakeFiles/opencv_core.dir/src/alloc.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1607: modules/core/CMakeFiles/opencv_core.dir/src/async.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1691: modules/core/CMakeFiles/opencv_core.dir/src/command_line_parser.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1635: modules/core/CMakeFiles/opencv_core.dir/src/bindings_utils.cpp.o] Ошибка 1
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1579: modules/core/CMakeFiles/opencv_core.dir/src/arithm.dispatch.cpp.o] Ошибка 1
make[2]: выход из каталога «/home/olegb/opencv/build»
make[1]: *** [CMakeFiles/Makefile2:3756: modules/core/CMakeFiles/opencv_core.dir/all] Ошибка 2
make[1]: выход из каталога «/home/olegb/opencv/build»
make: *** [Makefile:166: all] Ошибка 2

Can you help me, please, what I need to do?

Solved:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.