由于不支持的gcc编译器版本,Caffe编译失败

帕特里克·内格

我为Caffe编译苦恼不幸的是我没有编译它。

我遵循的步骤

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

运行make all失败,并显示以下错误消息:

[  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

软件版本:

  • 作业系统:Debian
  • gcc版本:5.3.1
  • nvcc版本:6.5.12
  • cat /proc/driver/nvidia/version 结果:
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) 

试图解决问题

第一次尝试

简单的解决方案往往是最好的,所以(如建议在这里)我试图注释掉宏观检查gcc从版本/usr/include/host_config.h(线82)。不幸的是,它不起作用,并且编译失败严重:

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

第二次尝试

我试着跑:

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

但失败并显示完全相同的错误消息(即使g++-4.8应该接受)。

第三次尝试

我发现了类似的问题(尽管与Caffe无关),并且按照接受的答案中的建议尝试解决。

我做了什么:

  1. 我已经运行grep -iR "find_package(CUDA" caffe命令并找到了在第225行中的Cuda.cmake文件find_package(CUDA 5.5 QUIET)
  2. 在的前一行添加set(CUDA_HOST_COMPILER /usr/bin/gcc-4.8)Cuda.cmakefind_package(CUDA 5.5 QUIET)
  3. 我从build目录中删除了所有内容,cmake然后make再次运行-带和不带-D CMAKE_CXX_COMPILER=g++-4.8

不幸的是结果是完全一样的。Caffe可能会以某种方式覆盖它-我并没有弄清楚它是如何覆盖的

make VERBOSE=1 2>&1 | grep -i compiler-bindir 什么也不返回。

有趣的是,make VERBOSE=1失败的prints命令是:

/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

当我--compiler-bindir /usr/bin/gcc-4.8手动添加标志时,它会显示错误:

nvcc fatal   : redefinition of argument 'compiler-bindir'

这可能与错误报告有关。

编辑:我没有注意到,--compiler-bindir并且-ccbin是相同的选项,并且后者已经在失败的上述命令中设置。当我在上述命令中更改-ccbin /usr/bin/cc-ccbin /usr/bin/gcc-4.8失败时,它成功完成。现在,我需要在Caffe的CMake文件中找到可以覆盖-ccbin所有后续Caffe的CMakes中的选项。cmake/Cuda.cmake:252:list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA}似乎是个好方法。


如何成功完成编译?任何帮助表示赞赏。

相关的SO问题:

帕特里克·内格

cmake -D CUDA_NVCC_FLAGS="-ccbin gcc-4.8" .. && make导致成功编译


现在出现了另一个问题:链接Googlelibgflagslibprotobuf失败可能是由于它是用较新gcc版本编译的,但与所询问的问题无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不支持的编译器

来自分类Dev

Kotlin选择加入:此版本的编译器不支持标志

来自分类Dev

GCC ARM C编译器不支持%llx printf格式代码的-std = c99

来自分类Dev

xcode 6.1构建失败,并显示错误“ Apple LLVM 6.0错误:编译器不支持'fapple-kext'”

来自分类Dev

CMake 表示编译器不支持标志,但它支持

来自分类Dev

为什么嵌入式C ++编译器不支持异常?

来自分类Dev

Angular 2 RC6:cli编译器说“不支持函数调用”

来自分类Dev

ValueError:小端编译器不支持大端缓冲区

来自分类Dev

英特尔C ++编译器给出“此平台不支持卸载结构”错误

来自分类Dev

csympy cmake错误:编译器不支持C ++ 11构造

来自分类Dev

genkernel all:编译器不支持fstack-protector

来自分类Dev

Matlab:错误消息“ ???当前目标,语言或编译器不支持库'ImfilterBuildable'。”

来自分类Dev

为什么GCC不支持多线程编译?

来自分类Dev

Java编译错误:不支持的类版本

来自分类Dev

CoreData模型编译器由于libwep而失败

来自分类Dev

无法编译不支持的invokespecial使用

来自分类Dev

Vue 3 i18n问题:此版本不支持消息格式编译

来自分类Dev

PHP preg_replace return编译失败:PCRE不支持

来自分类Dev

在Ubuntu 17.04上编译Torch:不支持GCC版本> 5和Gcc错误:gcc:尝试执行'cc1'时出错:execvp:没有此类文件或目录

来自分类Dev

哪些编译器支持std :: filesystem?

来自分类Dev

启用C ++支持ARMCC编译器

来自分类Dev

启用C ++支持ARMCC编译器

来自分类Dev

Android Studio失败-不支持不支持的主要次要版本51.0

来自分类Dev

编译错误:compactFrames选项不支持JSR / RET

来自分类Dev

内核不支持PIC模式进行编译?

来自分类Dev

内核不支持PIC模式进行编译?

来自分类Dev

GCC编译器优化选项

来自分类Dev

gcc编译器__SIZE_TYPE__

来自分类Dev

如何规避Anaconda GCC编译器?

Related 相关文章

  1. 1

    不支持的编译器

  2. 2

    Kotlin选择加入:此版本的编译器不支持标志

  3. 3

    GCC ARM C编译器不支持%llx printf格式代码的-std = c99

  4. 4

    xcode 6.1构建失败,并显示错误“ Apple LLVM 6.0错误:编译器不支持'fapple-kext'”

  5. 5

    CMake 表示编译器不支持标志,但它支持

  6. 6

    为什么嵌入式C ++编译器不支持异常?

  7. 7

    Angular 2 RC6:cli编译器说“不支持函数调用”

  8. 8

    ValueError:小端编译器不支持大端缓冲区

  9. 9

    英特尔C ++编译器给出“此平台不支持卸载结构”错误

  10. 10

    csympy cmake错误:编译器不支持C ++ 11构造

  11. 11

    genkernel all:编译器不支持fstack-protector

  12. 12

    Matlab:错误消息“ ???当前目标,语言或编译器不支持库'ImfilterBuildable'。”

  13. 13

    为什么GCC不支持多线程编译?

  14. 14

    Java编译错误:不支持的类版本

  15. 15

    CoreData模型编译器由于libwep而失败

  16. 16

    无法编译不支持的invokespecial使用

  17. 17

    Vue 3 i18n问题:此版本不支持消息格式编译

  18. 18

    PHP preg_replace return编译失败:PCRE不支持

  19. 19

    在Ubuntu 17.04上编译Torch:不支持GCC版本> 5和Gcc错误:gcc:尝试执行'cc1'时出错:execvp:没有此类文件或目录

  20. 20

    哪些编译器支持std :: filesystem?

  21. 21

    启用C ++支持ARMCC编译器

  22. 22

    启用C ++支持ARMCC编译器

  23. 23

    Android Studio失败-不支持不支持的主要次要版本51.0

  24. 24

    编译错误:compactFrames选项不支持JSR / RET

  25. 25

    内核不支持PIC模式进行编译?

  26. 26

    内核不支持PIC模式进行编译?

  27. 27

    GCC编译器优化选项

  28. 28

    gcc编译器__SIZE_TYPE__

  29. 29

    如何规避Anaconda GCC编译器?

热门标签

归档