我正在尝试为 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.omodules/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' failedmake[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.cu.o] Error 1CMakeFiles/Makefile2:890: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failedmake[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2Makefile:160: recipe for target 'all' failedmake: *** [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 回答

holdtom
TA贡献1805条经验 获得超10个赞
貌似这个版本有BUG。它已在 opencv master 中修复。
打开cmake/OpenCVDetectCUDA.cmake,在第 136 行或附近,添加此提交中所述的以下行:
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}")
添加回答
举报
0/150
提交
取消