【问题标题】:CMake can't find OpenCVConfig.cmakeCMake 找不到 OpenCVConfig.cmake
【发布时间】:2016-10-24 12:43:48
【问题描述】:

我正在尝试使 OpenCV 在 Windows 10(64 位)上的 Clion 中与 CMake 一起工作。我已经将OPENCV_DIR 设置为包含OpenCVConfig.cmake 的OpenCV 构建文件夹,但是cmake 一直唠叨它找不到文件。

Could not find a package configuration file provided by "OpenCV" with any of the following names:
  OpenCVConfig.cmake   opencv-config.cmake

这是我的 CMakeLists:

cmake_minimum_required(VERSION 3.6)
project(MyProject)

set(OpenCV_DIR "D:/opencv/build/")

find_package(OpenCV REQUIRED core imgproc)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(MyProject main.cpp)
target_link_libraries(MyProject ${OpenCV_LIBS})

这是D:/opencv/build/ 文件夹的内容:

这可能是什么问题?提前致谢!

【问题讨论】:

  • 我不确定,但这不应该是 Windows 路径:"D:\\opencv\\build"?
  • 在 Windows 上,斜线 \ 可以替换为 / 以避免字符串转义。但我也尝试了`\\`,但它也没有工作:(
  • 嗯,这可能是 cachenon-cache 变量之间的混淆:find_package 的描述告诉它设置 cache条目 <package>_DIR,因此它可能期望预先存在的值也被缓存。尝试设置 cached 变量而不是普通变量:通过命令行的-D 选项、通过CMake 缓存编辑或使用set(.. CACHE)。或者,您可以将给定的提示作为PATH 选项传递给find_package 调用。
  • 好的,所以我跟着thisfind_package之前清除了缓存,但也没有用。顺便说一句,我认为(还)没关系,因为 cmake 在缓存之前还没有成功找到 opencv。
  • 不需要清除缓存,您需要设置它。您是否在(不成功)cmake 调用之后执行此操作是无关的。

标签: c++ windows opencv cmake


【解决方案1】:

我发现了这个问题,这对于像我这样的 CMake 新手来说是完全出乎意料的。

事实证明,我将 CMake 安装为 Cygwin 的一部分,因此文件系统路径采用 /cygdrive/d/opencv/build/ 的形式。这没有问题。

因此,如果您使用的是 Windows,请注意不同的文件路径样式,以防 CMake 由 Cygwin 提供。

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 2016-12-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2016-04-14
    • 2021-07-23
    • 2011-08-20
    • 2018-01-20
    相关资源
    最近更新 更多