我第一次尝试使用CMake的find_package(OpenCV)功能,但无法成功。
OpenCVModules.cmake文件和OpenCVConfig.cmake文件在同一个文件夹中,但由于某些原因,CMake配置失败并显示以下错误信息。
我正在使用Windows操作系统,Visual Studio Express 2010,CMake v2.8.0以及OpenCV v2.4.9。
CMake Error at D:/opencv/mybuild/install/x86/vc10/lib/OpenCVConfig.cmake:49 (include):
include could not find load file:
/OpenCVModules.cmake
Call Stack (most recent call first):
CMakeLists.txt:19 (FIND_PACKAGE)
我需要使用VS 2010 Express,但是对于这个项目,我可以选择与之兼容的任何版本的CMake和OpenCV。
我现在正在CMakeLists.txt文件中操作,使用的是随OpenCV一起提供的默认的"OpenCVConfig.cmake"文件,我没有进行修改。
SET(OpenCV_DIR "D:/opencv/mybuild")
# this project requires OpenCV, so find it
FIND_PACKAGE( OpenCV )
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )
OpenCVConfig.cmake文件的第49行看起来像这样:
include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
任何正确方向上的帮助都将不胜感激。谢谢。 更新1: 如果我通过硬编码路径修改第49行,它就可以工作!
include(D:/opencv/mybuild/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
由于某些原因,${CMAKE_CURRENT_LIST_DIR} 没有被适当地设置。 看起来像是动态变量。为什么没有按预期设置?