title: CMakeFiles/Makefile2:1429: recipe for target 'caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/all' failed
body: <p>When I've installed all the prerequisites listed in the install page of caffe2, I type the command <code>make &amp;&amp; cd build &amp;&amp; sudo make install</code> the compile caffe2, then I got the following error, the 1st part is log file using <code>Cmake</code>.</p>
  
  <p>cama@cama:/home/chaoyang/caffe2-master/build$ cmake ..
  -- The CXX compiler identification is GNU 4.9.3
  -- The C compiler identification is GNU 4.9.3
  -- Check for working CXX compiler: /usr/bin/c++
  -- Check for working CXX compiler: /usr/bin/c++ -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Check for working C compiler: /usr/bin/cc
  -- Check for working C compiler: /usr/bin/cc -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Build type not set - defaulting to Release
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Looking for pthread_create
  -- Looking for pthread_create - not found
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - found
  -- Found Threads: TRUE<br>
  -- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so<br>
  -- The BLAS backend of choice:Eigen
  -- Could NOT find NNPACK (missing:  NNPACK_INCLUDE_DIR NNPACK_LIBRARY) 
  -- Will try to build NNPACK from source. If anything fails, follow the NNPACK prerequisite installation steps.
  CMake Warning at cmake/External/nnpack.cmake:157 (message):
    NNPACK is chosen to be installed, but confu and ninja that are needed by it
    are not installed.  As a result we won't build with NNPACK.
  Call Stack (most recent call first):
    cmake/Dependencies.cmake:52 (include)
    CMakeLists.txt:72 (include)</p>
  
  <p>CMake Warning at cmake/Dependencies.cmake:57 (message):
    Not compiling with NNPACK.  Suppress this warning with -DUSE_NNPACK=OFF
  Call Stack (most recent call first):
    CMakeLists.txt:72 (include)</p>
  
  <p>-- Found GFlags: /usr/include<br>
  -- Found gflags  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so)
  -- Found system gflags install.
  -- Found Glog: /usr/include<br>
  -- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
  -- Found system glog install.
  -- Found PythonInterp: /home/cama/anaconda3/bin/python (found version "3.6") 
  -- Could NOT find Benchmark (missing:  Benchmark_INCLUDE_DIR Benchmark_LIBRARY) 
  -- Found Git: /usr/bin/git (found version "2.7.4") 
  -- git Version: v0.0.0
  -- Version: 0.0.0
  -- Performing Test HAVE_CXX_FLAG_STD_CXX11
  -- Performing Test HAVE_CXX_FLAG_STD_CXX11 - Success
  -- Performing Test HAVE_CXX_FLAG_WALL
  -- Performing Test HAVE_CXX_FLAG_WALL - Success
  -- Performing Test HAVE_CXX_FLAG_WEXTRA
  -- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
  -- Performing Test HAVE_CXX_FLAG_WSHADOW
  -- Performing Test HAVE_CXX_FLAG_WSHADOW - Success
  -- Performing Test HAVE_CXX_FLAG_WERROR
  -- Performing Test HAVE_CXX_FLAG_WERROR - Success
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC - Success
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS - Success
  -- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32
  -- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32 - Failed
  -- Performing Test HAVE_CXX_FLAG_WFLOAT_EQUAL
  -- Performing Test HAVE_CXX_FLAG_WFLOAT_EQUAL - Success
  -- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING
  -- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING - Success
  -- Performing Test HAVE_CXX_FLAG_WZERO_AS_NULL_POINTER_CONSTANT
  -- Performing Test HAVE_CXX_FLAG_WZERO_AS_NULL_POINTER_CONSTANT - Success
  -- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING
  -- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING - Success
  -- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY
  -- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY - Failed
  -- Performing Test HAVE_CXX_FLAG_COVERAGE
  -- Performing Test HAVE_CXX_FLAG_COVERAGE - Success
  -- Performing Test HAVE_STD_REGEX
  -- Performing Test HAVE_STD_REGEX -- success
  -- Performing Test HAVE_GNU_POSIX_REGEX
  -- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
  -- Performing Test HAVE_POSIX_REGEX
  -- Performing Test HAVE_POSIX_REGEX -- success
  -- Performing Test HAVE_STEADY_CLOCK
  -- Performing Test HAVE_STEADY_CLOCK -- success
  -- Performing Test BENCHMARK_HAS_CXX03_FLAG
  -- Performing Test BENCHMARK_HAS_CXX03_FLAG - Success
  -- Found LMDB: /usr/include<br>
  -- Found lmdb    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so)
  -- Found LevelDB: /usr/include<br>
  -- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so)
  -- Found Snappy: /usr/include<br>
  -- Found Snappy  (include: /usr/include, library: /usr/lib/libsnappy.so)
  -- Could NOT find RocksDB (missing:  RocksDB_INCLUDE_DIR RocksDB_LIBRARIES) 
  CMake Warning at cmake/Dependencies.cmake:138 (message):
    Not compiling with RocksDB.  Suppress this warning with -DUSE_ROCKSDB=OFF
  Call Stack (most recent call first):
    CMakeLists.txt:72 (include)</p>
  
  <p>CMake Warning at cmake/Dependencies.cmake:181 (message):
    Not compiling with OpenCV.  Suppress this warning with -DUSE_OPENCV=OFF
  Call Stack (most recent call first):
    CMakeLists.txt:72 (include)</p>
  
  <p>CMake Warning at cmake/Dependencies.cmake:201 (find_package):
    By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
    asked CMake to find a package configuration file provided by "Eigen3", but
    CMake did not find one.</p>
  
  <p>Could not find a package configuration file provided by "Eigen3" with any
    of the following names:</p>
  
  <pre><code>Eigen3Config.cmake
  eigen3-config.cmake
  </code></pre>
  
  <p>Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
    "Eigen3_DIR" to a directory containing one of the above files.  If "Eigen3"
    provides a separate development package or SDK, be sure it has been
    installed.
  Call Stack (most recent call first):
    CMakeLists.txt:72 (include)</p>
  
  <p>-- Found PythonInterp: /home/cama/anaconda3/bin/python (found suitable version "3.6", minimum required is "2.7") 
  -- Found PythonLibs: /home/cama/anaconda3/lib/libpython3.6m.so (found suitable version "3.6.0", minimum required is "2.7") 
  -- Found NumPy: /home/cama/anaconda3/lib/python3.6/site-packages/numpy/core/include (found version "1.11.3") 
  -- NumPy ver. 1.11.3 found (include: /home/cama/anaconda3/lib/python3.6/site-packages/numpy/core/include)
  -- Could NOT find pybind11 (missing:  pybind11_INCLUDE_DIR) 
  -- Could NOT find MPI_C (missing:  MPI_C_LIBRARIES MPI_C_INCLUDE_PATH) 
  -- Could NOT find MPI_CXX (missing:  MPI_CXX_LIBRARIES MPI_CXX_INCLUDE_PATH) 
  CMake Warning at cmake/Dependencies.cmake:257 (message):
    Not compiling with MPI.  Suppress this warning with -DUSE_MPI=OFF
  Call Stack (most recent call first):
    CMakeLists.txt:72 (include)</p>
  
  <p>-- Try OpenMP C flag = [-fopenmp]
  -- Performing Test OpenMP_FLAG_DETECTED
  -- Performing Test OpenMP_FLAG_DETECTED - Success
  -- Try OpenMP CXX flag = [-fopenmp]
  -- Performing Test OpenMP_FLAG_DETECTED
  -- Performing Test OpenMP_FLAG_DETECTED - Success
  -- Found OpenMP: -fopenmp<br>
  -- Adding -fopenmp
  -- CUDA detected: 8.0
  -- Added CUDA NVCC flags for: sm_61
  -- Found libcuda: /usr/local/cuda-8.0/lib64/stubs/libcuda.so
  -- Found libnvrtc: /usr/local/cuda-8.0/lib64/libnvrtc.so
  -- Found CUDNN: /usr/local/cuda-8.0/include<br>
  -- Found cuDNN: v5.1.5  (include: /usr/local/cuda-8.0/include, library: /usr/local/cuda-8.0/lib64/libcudnn.so)
  -- Could NOT find NCCL (missing:  NCCL_INCLUDE_DIR NCCL_LIBRARY) 
  -- NCCL: /home/chaoyang/caffe2-master/third_party/nccl/build/lib/libnccl_static.a
  -- Could NOT find CUB (missing:  CUB_INCLUDE_DIR) 
  -- Could NOT find Gloo (missing:  Gloo_INCLUDE_DIR Gloo_LIBRARY) 
  -- Found CUDA: /usr/local/cuda-8.0 (found suitable version "8.0", minimum required is "7.0") 
  -- CUDA detected: 8.0
  -- Found libcuda: /usr/local/cuda-8.0/lib64/stubs/libcuda.so
  -- Found libnvrtc: /usr/local/cuda-8.0/lib64/libnvrtc.so
  -- Performing Test CAFFE2_LONG_IS_INT32_OR_64
  -- Performing Test CAFFE2_LONG_IS_INT32_OR_64 - Success
  -- Does not need to define long separately.
  -- Performing Test HAS_BUILTIN_CPU_SUPPORTS
  -- Performing Test HAS_BUILTIN_CPU_SUPPORTS - Success
  -- This compiler has builtin_cpu_supports feature.
  -- Performing Test CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING
  -- Performing Test CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING - Failed
  -- Turning off deprecation warning due to glog.
  -- GCC 4.9.3: Adding gcc and gcc_s libs to link line
  -- Include NCCL operators
  -- Excluding image processing operators due to no opencv
  -- Excluding video processing operators due to no opencv
  -- Excluding mkl operators as we are not using mkl
  -- MPI operators skipped due to no MPI support</p>
  
  <h2>-- Automatically generating missing <strong>init</strong>.py files.</h2>
  
  <p>-- ******** Summary ********
  -- General:
  --   Git version           : 
  --   System                : Linux
  --   C++ compiler          : /usr/bin/c++
  --   C++ compiler version  : 4.9.3
  --   Protobuf compiler     : /usr/bin/protoc
  --   CXX flags             :  -fopenmp -Wno-deprecated -std=c++11 -fPIC -Wno-narrowing
  --   Build type            : Release</p>
  
  <h2>--   Compile definitions   : CAFFE2_USE_EIGEN_FOR_BLAS;CAFFE2_USE_GOOGLE_GLOG;CAFFE2_USE_GFLAGS;EIGEN_MPL2_ONLY</h2>
  
  <p>--   BUILD_SHARED_LIBS     : ON
  --   BUILD_PYTHON          : ON
  --     Python version      : 3.6.0
  --     Python library      : /home/cama/anaconda3/lib/libpython3.6m.so
  --   USE_CUDA              : ON
  --     CUDA version        : 8.0
  --   USE_CNMEM             : OFF
  --   USE_NERVANA_GPU       : OFF
  --   USE_GLOG              : ON
  --   USE_GFLAGS            : ON
  --   USE_LMDB              : ON
  --     LMDB version        : 0.9.10
  --   USE_LEVELDB           : ON
  --     LevelDB version     : 1.15
  --     Snappy version      : 1.1.0
  --   USE_OPENCV            : OFF
  --   USE_FFMPEG            : 
  --   USE_ZMQ               : OFF
  --   USE_ROCKSDB           : OFF
  --   USE_MPI               : OFF
  --   USE_NCCL              : ON
  --   USE_NNPACK            : OFF
  --   USE_OPENMP            : ON
  --   USE_REDIS             : OFF
  --   USE_GLOO              : ON
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /home/chaoyang/caffe2-master/build</p>
  
  <p>The following is the normal output of make. Please focus on the last lines for the reason that these indicate the errors.</p>
  
  <p>[ 77%] Building CXX object caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/operators/conv_op_cache_cudnn_test.cc.o
  [ 77%] Linking CXX executable binaries/conv_op_cache_cudnn_test
  libCaffe2_CPU.so: undefined reference to <code>gflags::SetUsageMessage(std::string const&amp;)'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::string*)'
  libCaffe2_CPU.so: undefined reference to <code>google::protobuf::Message::GetTypeName() const'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)'
  libCaffe2_GPU.so: undefined reference to <code>google::protobuf::internal::kEmptyString'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::MessageLite::SerializeToString(std::string*) const'
  libCaffe2_CPU.so: undefined reference to <code>google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&amp;))'
  libCaffe2_GPU.so: undefined reference to</code>google::protobuf::TextFormat::ParseFromString(std::string const&amp;, google::protobuf::Message*)'
  libCaffe2_GPU.so: undefined reference to <code>google::base::CheckOpMessageBuilder::NewString()'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::internal::WireFormatLite::WriteBytes(int, std::string const&amp;, google::protobuf::io::CodedOutputStream*)'
  libCaffe2_GPU.so: undefined reference to <code>google::protobuf::internal::StringTypeHandlerBase::New()'
  libCaffe2_CPU.so: undefined reference to</code>gflags::ParseCommandLineFlags(int*, char***, bool)'
  libCaffe2_GPU.so: undefined reference to <code>google::protobuf::Message::ShortDebugString() const'
  libCaffe2_GPU.so: undefined reference to</code>google::protobuf::MessageLite::ParseFromString(std::string const&amp;)'
  libCaffe2_GPU.so: undefined reference to <code>gflags::FlagRegisterer::FlagRegisterer(char const*, char const*, char const*, char const*, void*, void*)'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&amp;, google::protobuf::io::CodedOutputStream*)'
  libCaffe2_GPU.so: undefined reference to <code>google::protobuf::internal::ParseNamedEnum(google::protobuf::EnumDescriptor const*, std::string const&amp;, int*)'
  libCaffe2_GPU.so: undefined reference to</code>google::protobuf::MessageLite::SerializeAsString() const'
  libCaffe2_CPU.so: undefined reference to <code>google::protobuf::DescriptorPool::FindFileByName(std::string const&amp;) const'
  libCaffe2_CPU.so: undefined reference to</code>gflags::ProgramUsage()'
  libCaffe2_CPU.so: undefined reference to <code>google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::string*)'
  libCaffe2_CPU.so: undefined reference to</code>google::protobuf::Message::InitializationErrorString() const'
  collect2: error: ld returned 1 exit status
  caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/build.make:130: recipe for target 'caffe2/binaries/conv_op_cache_cudnn_test' failed
  make[3]: <strong>* [caffe2/binaries/conv_op_cache_cudnn_test] Error 1
  make[3]: Leaving directory '/home/chaoyang/caffe2-master/build'
  CMakeFiles/Makefile2:1429: recipe for target 'caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/all' failed
  make[2]: <em></strong> [caffe2/CMakeFiles/conv_op_cache_cudnn_test.dir/all] Error 2
  make[2]: Leaving directory '/home/chaoyang/caffe2-master/build'
  Makefile:138: recipe for target 'all' failed
  make[1]: <strong></em> [all] Error 2
  make[1]: Leaving directory '/home/chaoyang/caffe2-master/build'
  Makefile:4: recipe for target 'all' failed
  make: *</strong> [all] Error 2</p>
  
  <p>It seems that cudnn library caused this error, while I've successfully used cudnn-v5.1 and cuda-8.0 in ubuntu, specifically, in matconvnet, which requires cuda and cudnn for accelerating the computation speed. And it seems no one else has got this error before, so any advice will be appreciated!</p>