opencv / opencv

Open Source Computer Vision Library
https://opencv.org
Apache License 2.0
78.13k stars 55.72k forks source link

opencv_cudaarithm faile to build #7939

Closed jiapei100 closed 7 years ago

jiapei100 commented 7 years ago

Hi:

System information (version)
Detailed description

Have NO idea why opencv suddenly failed to build around 10% while building libopencv_cudaarithm.so

[ 10%] Linking CXX shared library ../../lib/libopencv_cudaarithm.so cd ....../opencv/build/modules/cudaarithm && /usr/bin/cmake -E cmake_link_script CMakeFiles/opencv_cudaarithm.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Winit-self -Wpointer-arith -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fno-omit-frame-pointer -ffast-math -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -pg -g -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-undef -Wno-missing-declarations -Wno-shadow -O3 -DNDEBUG -DNDEBUG -shared -Wl,-soname,libopencv_cudaarithm.so.3.2 -o ../../lib/libopencv_cudaarithm.so.3.2.0 CMakeFiles/opencv_cudaarithm.dir/src/reductions.cpp.o CMakeFiles/opencv_cudaarithm.dir/src/element_operations.cpp.o CMakeFiles/opencv_cudaarithm.dir/src/core.cpp.o CMakeFiles/opencv_cudaarithm.dir/src/arithm.cpp.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_add_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_minmaxloc.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_normalize.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_threshold.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_countnonzero.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_cmp_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_add_weighted.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_math.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_reduce.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_transpose.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_norm.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_sum.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_mul_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_split_merge.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_div_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_minmax.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_add_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_lut.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_mul_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_polar_cart.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_sub_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_minmax_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_cmp_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_sub_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_mul_spectrums.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_bitwise_scalar.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_copy_make_border.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_div_mat.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_integral.cu.o CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_bitwise_mat.cu.o -L/usr/local/cuda/lib64 ../../lib/libopencv_core.so.3.2.0 -ldl -lm -lpthread -lrt -lGLU -lGL /usr/lib/x86_64-linux-gnu/libtbb.so ../../3rdparty/ippicv/ippicv_lnx/lib/intel64/libippicv.a -llapack -lcblas -latlas -lcudart -lnppc -lnppi -lnpps -lcublas -lcufft -L/usr/local/cuda/lib64 -lcublas -lcufft -lcudart -lnppc -lnppi -lnpps ../../lib/libopencv_cudev.so.3.2.0 -Wl,-rpath,/usr/local/cuda/lib64:....../opencv/build/lib: cd ....../opencv/build/modules/cudaarithm && /usr/bin/cmake -E cmake_symlink_library ../../lib/libopencv_cudaarithm.so.3.2.0 ../../lib/libopencv_cudaarithm.so.3.2 ../../lib/libopencv_cudaarithm.so make[2]: Leaving directory '....../opencv/build' [ 10%] Built target opencv_cudaarithm make[1]: Leaving directory '....../opencv/build' Makefile:163: recipe for target 'all' failed make: *** [all] Error 2

CMakeFiles/CMakeError.log hints sys/video.h is missing. However, I've already installed libv4l and libv4l-dev. I tried to NOT Build_With libv4l as well, but still get the following ERROR messages:

Determining if the include file sys/videoio.h exists failed with the following output: Change Dir: ....../opencv/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_d139f/fast" /usr/bin/make -f CMakeFiles/cmTC_d139f.dir/build.make CMakeFiles/cmTC_d139f.dir/build make[1]: Entering directory '....../opencv/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_d139f.dir/CheckIncludeFile.c.o /usr/bin/cc -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fno-omit-frame-pointer -ffast-math -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -pg -g -fvisibility=hidden -O3 -DNDEBUG -o CMakeFiles/cmTC_d139f.dir/CheckIncludeFile.c.o -c ....../opencv/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c ....../opencv/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:25: fatal error: sys/videoio.h: No such file or directory compilation terminated. CMakeFiles/cmTC_d139f.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_d139f.dir/CheckIncludeFile.c.o' failed make[1]: [CMakeFiles/cmTC_d139f.dir/CheckIncludeFile.c.o] Error 1 make[1]: Leaving directory '....../opencv/build/CMakeFiles/CMakeTmp' Makefile:126: recipe for target 'cmTC_d139f/fast' failed make: [cmTC_d139f/fast] Error 2

Any suggestions?

Cheers Pei

alalek commented 7 years ago

I doesn't see any error messages from the first log. Try to run mentioned command separately (or with -v verbose flag).

Second log with

CMakeFiles/CMakeError.log hints sys/video.h

should be ignored, because it is not related to this problem.

alalek commented 7 years ago

Try CMake option -DWITH_CUDA=OFF to disable CUDA modules.

vpisarev commented 7 years ago

ok, we now have CUDA builder, which seem to compile opencv-master fine

nikepakou commented 6 years ago

@jiapei100 How did you solve the problem in the end? appreciate to tell me

czero69 commented 6 years ago

I just hit the error libopencv_cudaarithm.so about 30%. OpenCV 3.2.0, Ubuntu 16.04, CUDA 8.0, gcc 5.40

And the error when building libopencv_imgcodecs.so just before it [ 29%] Linking CXX shared library ../../lib/libopencv_imgcodecs.so /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libjpeg.a(jcmainct.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libjpeg.a: error adding symbols: Zła wartość collect2: error: ld returned 1 exit status modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/build.make:579: polecenia dla obiektu 'lib/libopencv_imgcodecs.so.3.2.0' nie powiodły się make[2]: [lib/libopencv_imgcodecs.so.3.2.0] Błąd 1 CMakeFiles/Makefile2:7498: polecenia dla obiektu 'modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all' nie powiodły się make[1]: [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Błąd 2 make[1]: *** Oczekiwanie na niezakończone zadania....

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_JPEG=ON -D BUILD_JPEG=OFF -D JPEG_INCLUDE_DIR=/home/czero/Pobrane/libjpeg-turbo-1.5.2 -D JPEG_LIBRARY=/usr/lib/libjpeg.a -D WITH_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules -D BUILD_EXAMPLES=ON ..

I have built OpenCV 3.20 several times before with no errors, but without libjpeg-turbo and with CUDA 7.5 instead of CUDA 8.0

EDIT: I am able to build without jpeg-turbo. I think I messed something with linking library jpeg, I am far away from being familiar with libjpeg-turbo or TURBOjpeg, https://libjpeg-turbo.org/About/TurboJPEG