代码之家  ›  专栏  ›  技术社区  ›  Himanshu Poddar

错误:memcpy未在此范围内声明(Ubuntu 16.04,opencv2.4.13)

  •  0
  • Himanshu Poddar  · 技术社区  · 6 年前

    我正试图为Ubuntu 16.04安装opencv2.4.13,但在运行时出现了类似这样的错误 make 命令

    [  1%] Built target opencv_core_pch_dephelp
    [  1%] Built target pch_Generate_opencv_core
    [  2%] Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.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;
                                              ^
    CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:266 (message):
      Error generating file
      /home/savvycom/opencv-2.4.13.6/release/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o
    
    
    modules/core/CMakeFiles/opencv_core.dir/build.make:198: recipe for target 'modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.cu.o' failed
    make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.cu.o] Error 1
    CMakeFiles/Makefile2:890: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
    make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2
    

    我的cmake配置是:

    cmake \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D CUDA_GENERATION=Kepler \
    -D BUILD_LIBPROTOBUF_FROM_SOURCES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D PYTHON2_EXECUTABLE=/usr/bin/python2.7 \
    -D PYTHON_INCLUDE_DIR=/usr/include/python2.7 \
    -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \
    -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
    -D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \
    -D BUILD_EXAMPLES=ON ..
    

    有人能帮我解决这个问题吗。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Cinder Biscuits    6 年前

    看起来像 a bug 在这个版本中。它已在opencv master中修复。

    cmake/OpenCVDetectCUDA.cmake ,在第136行上或其周围,按注释添加以下行 in this commit

      set(OPENCV_CUDA_ARCH_FEATURES "${OPENCV_CUDA_ARCH_FEATURES} ${ARCH}")
        endif()
      endforeach()
    + set(NVCC_FLAGS_EXTRA ${NVCC_FLAGS_EXTRA} -D_FORCE_INLINES)
    
      # Tell NVCC to add PTX intermediate code for the specified architectures
      string(REGEX MATCHALL "[0-9]+" ARCH_LIST "${ARCH_PTX_NO_POINTS}")