Ich möchte die OpenCV 3.2 mit Cuda 8 bauen und ich habe alle erforderlichen Bibliotheken für Cuda in meinem Linux-System installiert, die eine Debian 9 testing (stretch) 4.9.0-1-amd64
nach dem Generieren von Makefiles mit cmake erfolgreich ich bekomme Mehrfachdefinitionsverknüpfungsfehler durch Ausführen des make-Befehls. Ich habe viele Konfigurationen mit cmake ausprobiert und auch in vielen Foren habe ich fast alle diesbezüglichen Probleme überprüft, aber ich konnte keine Lösung finden. In Cmake habe ich geändert CUDA-Compiler gcc-5 seit cuda 8 kein gcc-Compiler muss später als Version 5 und die Standard-Compiler gcc ist Version 6.3 Hier ist meine Cmake Konfiguration Ausgang:Opencv Quelle kompilieren mit Cuda erzeugt mehrere Definition Link Fehler
OpenCV modules:
To be built: cudev core cudaarithm flann imgproc ml video cudabgsegm cudafilters cudaimgproc cudawarping imgcodecs photo shape videoio cudacodec highgui objdetect ts features2d calib3d cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo java stitching superres videostab python2 python3
Disabled: world
Disabled by dependency: -
Unavailable: viz
GUI:
QT 5.x: YES (ver 5.7.1)
QT OpenGL support: YES (Qt5::OpenGL 5.7.1)
OpenGL support: YES (/usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so)
VTK support: NO
Media I/O:
ZLib: /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8)
JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (ver)
WEBP: build (ver encoder: 0x020e)
PNG: /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.6.28)
TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.7)
JPEG 2000: /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)
OpenEXR: /usr/lib/x86_64-linux-gnu/libImath.so /usr/lib/x86_64-linux-gnu/libIlmImf.so /usr/lib/x86_64-linux-gnu/libIex.so /usr/lib/x86_64-linux-gnu/libHalf.so /usr/lib/x86_64-linux-gnu/libIlmThread.so (ver 2.2.0)
GDAL: NO
GDCM: NO
Video I/O:
DC1394 1.x: NO
DC1394 2.x: YES (ver 2.2.5)
FFMPEG: YES
avcodec: YES (ver 57.64.101)
avformat: YES (ver 57.56.101)
avutil: YES (ver 55.34.101)
swscale: YES (ver 4.2.100)
avresample: YES (ver 3.1.0)
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
OpenNI2: NO
PvAPI: NO
GigEVisionSDK: NO
Aravis SDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
gPhoto2: YES
Parallel framework: TBB (ver 4.3 interface 8006)
Other third-party libraries:
Use IPP: 9.0.1 [9.0.1]
at: /home/user/opencv_build/3rdparty/ippicv/ippicv_lnx
Use IPP Async: NO
Use VA: NO
Use Intel VA-API/OpenCL: NO
Use Lapack: NO
Use Eigen: YES (ver 3.3.2)
Use Cuda: YES (ver 8.0)
Use OpenCL: YES
Use OpenVX: NO
Use custom HAL: NO
NVIDIA CUDA
Use CUFFT: YES
Use CUBLAS: YES
USE NVCUVID: NO
NVIDIA GPU arch: 20 30 35 37 50 52 60 61
NVIDIA PTX archs:
Use fast math: YES
OpenCL: <Dynamic loading of OpenCL library>
Include path: /home/user/git/opencv/opencv/3rdparty/include/opencl/1.2
Use AMDFFT: NO
Use AMDBLAS: NO
Python 2:
Interpreter: /usr/bin/python2.7 (ver 2.7.13)
Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.13)
numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.12.0)
packages path: lib/python2.7/dist-packages
Python 3:
Interpreter: /usr/bin/python3 (ver 3.5.3)
Libraries: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.3)
numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.12.0)
packages path: lib/python3.5/dist-packages
Python (for build): /usr/bin/python2.7
Java:
ant: /usr/bin/ant (ver 1.9.8)
JNI: /usr/lib/jvm/java-8-openjdk-amd64/include /usr/lib/jvm/java-8-openjdk-amd64/include/linux /usr/lib/jvm/java-8-openjdk-amd64/include
Java wrappers: YES
Java tests: NO
Matlab: Matlab not found or implicitly disabled
Documentation:
Doxygen: /usr/bin/doxygen (ver 1.8.13)
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: YES
Install path: /usr/local
und hier ist der Befehl make Ausgabe
[ 10%] Built target libwebp
[ 10%] Built target opencv_cudev
[ 14%] Built target opencv_core
[ 14%] Linking CXX shared library ../../lib/libopencv_cudaarithm.so
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_scalar.cu.o:(.bss+0xd090): multiple definition of `cv::cudev::color_cvt_detail::c_RGB2YUVCoeffs_f'
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_mat.cu.o:(.bss+0xd090): first defined here
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_scalar.cu.o:(.bss+0xd070): multiple definition of `cv::cudev::color_cvt_detail::c_RGB2YUVCoeffs_i'
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_mat.cu.o:(.bss+0xd070): first defined here
.....
.....
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_transpose.cu.o:(.bss+0x0): multiple definition of `cv::cudev::color_cvt_detail::c_LabCbrtTab'
CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_absdiff_mat.cu.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/build.make:11685: recipe for target 'lib/libopencv_cudaarithm.so.3.2.0' failed
make[2]: *** [lib/libopencv_cudaarithm.so.3.2.0] Error 1
CMakeFiles/Makefile2:1204: recipe for target 'modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/all' failed
make[1]: *** [modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
Warum möchten Sie couslegacy bauen, es ist seit einiger Zeit mühsam – Sarvex
Leider deaktiviert die Abwahl von cudalegacy das Problem nicht. Es gibt noch mehrere Definitionslinkfehler. – AMCoded
Versuchen Sie, kompilieren ohne CUDA-Unterstützung zuerst, um das Debuggen einzugrenzen – Sarvex