Ich habe gerade eine saubere Installation von Ubuntu 16.04 mit CUDA 7.5 gestartet und hatte Probleme bei der Installation von OpenCV3.1.Installieren von OpenCV3.1 mit CUDA7.5 & Ubuntu 16.04 hat einen seltsamen Fehler
Wenn ich laufen zu lassen, bekam ich folgende Fehlermeldung:
[ 9%] Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_gpu_mat.cu.o
/usr/include/string.h: In function ‘void* __mempcpy_inline(void, const void, size_t)’:
/usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
return (char *) memcpy (__dest, __src, __n) + __n;
ich eine Lösung in verschiedenen (geschlossen) Github Bugs/Problems Diskussions-Threads gefunden, der wie folgt lautet:
In opencv/cmake/OpencvDetectCuda.cmake, change
set(NVCC_FLAGS_EXTRA ${NVCC_FLAGS_EXTRA} -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
to
set(NVCC_FLAGS_EXTRA ${NVCC_FLAGS_EXTRA} -D_FORCE_INLINES -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
Diese Lösung funktionierte für mich, aber ich verstehe das ursprüngliche Problem oder die Lösung immer noch nicht. Warum fügt das Hinzufügen des Flags -D_FORCE_INLINE Dinge hinzu? Warum gibt es ein Problem mit string.h? Dies ist (denke ich) eine der stabileren Dateien, die kompiliert werden. Ich hätte erwartet, dass irgendwelche Fehler mit CUDA7.5 oder OpenCV3.1 in Verbindung gebracht werden?
Wenn ich dieses Problem wieder sehe, wie erkenne ich es?
Ubuntu 16.04 ist keine offiziell unterstützte Konfiguration für CUDA 7.5. Die offiziell unterstützten Konfigurationen sind im CUDA 7.5 Linux Installationshandbuch aufgeführt. –
Ich verstehe, dass Ubuntu 16.04 nicht unterstützt wird. Ich frage mich jedoch, wie die Lösung für dieses spezielle Problem bestimmt wurde. – user1245262