错误/usr/include/string.h:652:42:错误:构建caffe时未在此范围内声明'memcpy'

时间:2016-05-15 17:33:48

标签: c++ compilation compiler-errors makefile cuda

我试图按照本指南编译caffe:https://gist.github.com/wangruohui/679b05fcd1466bb0937f

然而,当我得到make all时,我收到了错误

NVCC src/caffe/layers/hdf5_data_layer.cu
/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;
                                          ^
Makefile:585: recipe for target '.build_release/cuda/src/caffe/layers/hdf5_data_layer.o' failed

但是/usr/include/string.h甚至不在caffe代码中,所以给出了什么?这是一个紧随16.04

的ubuntu变体

看到代码的来源是一个众所周知的回购我觉得问题可能在Makefile或Makefile.config

1 个答案:

答案 0 :(得分:10)

经过很长一段时间浏览各种互联网资源后,我通过转到Makefile并更改了行解决了这个问题

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

进入

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

对我而言,这就是406