在win7中配置opencv2.4.13 时报错 ,错误信息是:CMake Warning at cmake/OpenCVPackaging.cmake:23 (message): CPACK_PACKAGE_VERSION does not match version provided by version.hpp
根据报错信息“”cmake/OpenCVPackaging.cmake:23“”
错误现场信息是:
if (NOT "${OPENCV_VCSVERSION}" MATCHES "^${OPENCV_VERSION}.*")
message(WARNING "CPACK_PACKAGE_VERSION does not match version provided by version.hpp header!")
endif()
然后去找${OPENCV_VCSVERSION} , ${OPENCV_VERSION} 这2个参数信息是从哪里来
最后在CMakeList.txt文件中找到如下信息
status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
if(OPENCV_VCSVERSION)
status(" Version control:" ${OPENCV_VCSVERSION})
endif()
正好是状态输出中有看到,如下
General configuration for OpenCV 2.4.13 =====================================
Version control: unknown
也就是对应了${OPENCV_VERSION} = 2.4.13 , ${OPENCV_VCSVERSION}) = unknown
继续寻找${OPENCV_VCSVERSION}) 这个参数是在哪里赋值的
找找找,找到了,在这里
find_host_program(GIT_EXECUTABLE NAMES ${git_names} PATH_SUFFIXES Git/cmd Git/bin DOC "git command line client")
mark_as_advanced(GIT_EXECUTABLE)
if(GIT_EXECUTABLE)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty --match "2.[0-9].[0-9]*"
WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
OUTPUT_VARIABLE OPENCV_VCSVERSION
RESULT_VARIABLE GIT_RESULT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_RESULT EQUAL 0)
set(OPENCV_VCSVERSION "unknown")
endif()
else()
# We don't have git:
set(OPENCV_VCSVERSION "unknown")
endif()
找到CMakeList.txt文件中上述位置,将后面两个unknown改成2.4.13版本号,重新编译就OK了
if(NOT GIT_RESULT EQUAL 0)
set(OPENCV_VCSVERSION "2.4.13")
endif()
else()
# We don't have git:
set(OPENCV_VCSVERSION "2.4.13")
endif()
参考http://blog.youkuaiyun.com/mysea2004/article/details/72566730