Caffe-Kompilierung schlägt aufgrund einer nicht unterstützten gcc-Compilerversion fehl

Ich kämpfe mit Caffe Zusammenstellung. Leider konnte ich es nicht kompilieren.

Schritt Ich folgte

git clone https://github.com/BVLC/caffe.git
cd caffe
mkdir build
cd build
cmake ..
make all

Laufenmake all schlägt mit der folgenden Fehlermeldung fehl:

[  2%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o
In file included from /usr/include/cuda_runtime.h:59:0,
                 from <command-line>:0:
/usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.9 and up are not supported!
 #error -- unsupported GNU version! gcc 4.9 and up are not supported!
  ^
CMake Error at cuda_compile_generated_im2col.cu.o.cmake:207 (message):
  Error generating /mydir/caffe/build/src/caffe/CMakeFiles/cuda_compile.dir/util/./cuda_compile_generated_im2col.cu.o

Softwareversion

OS:Debian.gcc Ausführung:5.3.1.nvcc Ausführung:6.5.12.cat /proc/driver/nvidia/version Ergebnis:
NVRM version: NVIDIA UNIX x86_64 Kernel Module  352.63  Sat Nov  7 21:25:42 PST 2015
GCC version:  gcc version 4.8.5 (Debian 4.8.5-3) 
Versuche das Problem zu lösen 1. Versuch

Einfache Lösungen sind oft die besten, also (wie empfohlenHie) Ich habe versucht, die Makroüberprüfung zu kommentierengcc Version von/usr/include/host_config.h (Zeile 82). Leider funktioniert es nicht und die Kompilierung schlägt fehl:

1 catastrophic error detected in the compilation of "/tmp/tmpxft_000069c2_00000000-4_im2col.cpp4.ii".
2. Versuch

Ich habe versucht zu rennen:

cmake -D CMAKE_CXX_COMPILER=g++-4.8 ..
make

aber es scheitert mitgena die gleiche Fehlermeldung (obwohlg++-4.8 sollte akzeptiert werden).

3. Versuch

Ich habe gefundenähnliches Problem (obwohl nicht mit @ verwand Caffe) und ich habe versucht, es wie in der akzeptierten Antwort vorgeschlagen zu lösen.

Was ich getan habe

Ich bin gelaufengrep -iR "find_package(CUDA" caffe Befehl und gefundenCuda.cmake Datei mitfind_package(CUDA 5.5 QUIET) in der Reihe 225.Ich fügte hinzuset(CUDA_HOST_COMPILER /usr/bin/gcc-4.8) zuCuda.cmake, Zeile vor Zeile:find_package(CUDA 5.5 QUIET).Ich habe alles von @ entferbuild Verzeichnis und liefcmake undmake wieder - mit und ohne-D CMAKE_CXX_COMPILER=g++-4.8.

Leider ist das Ergebnis genau das gleiche. Caffe überschreibt es wahrscheinlich irgendwie - ich habe es nicht herausgefundenWi.

make VERBOSE=1 2>&1 | grep -i compiler-bindir gibt nichts zurück.

Was ist interessant,make VERBOSE=1 druckt den fehlgeschlagenen Befehl aus.

/usr/bin/nvcc -M -D__CUDACC__ /mydir/caffe/src/caffe/util/im2col.cu -o /mydir/caffe/build/src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o.NVCC-depend -ccbin /usr/bin/cc -m64 -DUSE_LMDB -DUSE_LEVELDB -DUSE_OPENCV -DWITH_PYTHON_LAYER -DGTEST_USE_OWN_TR1_TUPLE -Xcompiler ,\"-fPIC\",\"-Wall\",\"-Wno-sign-compare\",\"-Wno-uninitialized\",\"-O3\",\"-DNDEBUG\" -gencode arch=compute_20,code=sm_21 -Xcudafe --diag_suppress=cc_clobber_ignored -Xcudafe --diag_suppress=integer_sign_change -Xcudafe --diag_suppress=useless_using_declaration -Xcudafe --diag_suppress=set_but_not_used -Xcompiler -fPIC -DNVCC -I/usr/include -I/mydir/caffe/src -I/usr/include -I/mydir/caffe/build/include -I/usr/include/hdf5/serial -I/usr/include/opencv -I/usr/include/atlas -I/usr/include/python2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/mydir/caffe/include -I/mydir/caffe/build

wenn ich @ hinzufü--compiler-bindir /usr/bin/gcc-4.8 flag manuell, es wird ein Fehler ausgegeben:

nvcc fatal   : redefinition of argument 'compiler-bindir'

was kann mit @ zusammenhängDie Fehlerbericht

Bearbeiten Ich habe das nicht bemerkt--compiler-bindir und-ccbin sind die gleichen Optionen, und letzteres ist bereits im obigen Befehl festgelegt, der fehlgeschlagen ist. Als ich @ geändert ha-ccbin /usr/bin/cc zu-ccbin /usr/bin/gcc-4.8 im obigen Befehl, der fehlgeschlagen ist, wird erfolgreich abgeschlossen. Jetzt muss ich eine Option in Caffes CMake-Datei finden, die @ überschreib-ccbin in allen nachfolgenden Caffe's CMakes. Anschauencmake/Cuda.cmake:252:list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA} scheint ein guter Weg zu sein.

Wie kann ich meine Zusammenstellung erfolgreich abschließen? Jede Hilfe wird gebeten.

Verwandte SO Fragen:

host_config.h: nicht unterstützte GNU-Version! gcc-versionen nach 4.9 werden nicht unterstützt. CUDA 6.5 beschwert sich darüber, dass gcc 4.9 nicht unterstützt wird - was tun?.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage