找不到加载文件 OpenCVModules.cmake
could not find load file OpenCVModules.cmake
我是第一次这样做,但无法使用 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 中执行此操作,"OpenCVConfig.cmake" 是随 OpenCV 一起提供的默认设置。我没修改。
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} 没有得到适当的设置。
这看起来像动态更改的变量。为什么这没有按预期设置?
OpenCV 2.4.9 中没有对 2.8.3 之前的 CMake 版本的正确支持。特别是,这意味着 CMAKE_CURRENT_LIST_DIR 不是生成的 OpenCVConfig.cmake 中定义的变量。这会导致 OpenCVModules.cmake 的路径格式不正确。至少关于 OpenCVConfig.cmake 中的这条有问题的行,直到 2.4.11 才添加对旧版本 CMake 的兼容性(我通过查看 OpenCV's github 上的 ./cmake/templates/OpenCVConfig.cmake.in
检查了这一点)。
也就是说,如果您可以选择使用什么版本的 CMake 和 OpenCV,那么我建议使用最新版本的 CMake (>=2.8.12) 和最新版本的 OpenCV 2.4 (2.4.13.1) ) 或 OpenCV 3.1.
我是第一次这样做,但无法使用 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 中执行此操作,"OpenCVConfig.cmake" 是随 OpenCV 一起提供的默认设置。我没修改。
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} 没有得到适当的设置。 这看起来像动态更改的变量。为什么这没有按预期设置?
OpenCV 2.4.9 中没有对 2.8.3 之前的 CMake 版本的正确支持。特别是,这意味着 CMAKE_CURRENT_LIST_DIR 不是生成的 OpenCVConfig.cmake 中定义的变量。这会导致 OpenCVModules.cmake 的路径格式不正确。至少关于 OpenCVConfig.cmake 中的这条有问题的行,直到 2.4.11 才添加对旧版本 CMake 的兼容性(我通过查看 OpenCV's github 上的 ./cmake/templates/OpenCVConfig.cmake.in
检查了这一点)。
也就是说,如果您可以选择使用什么版本的 CMake 和 OpenCV,那么我建议使用最新版本的 CMake (>=2.8.12) 和最新版本的 OpenCV 2.4 (2.4.13.1) ) 或 OpenCV 3.1.