Found OpenCV Windows Pack but it has no binaries compatible with your configuration.

Found OpenCV Windows Pack but it has no binaries compatible with your configuration.

CMakeLists中:
find_package(OpenCV REQUIRED) 报错,错误如下
在这里插入图片描述

  • cmake变量:
    cmake有两种变量: normalcache
    normal 就是我们普通使用的变量,比如 set(VAR "xyz")
    cache是cmake缓存的变量,比如 cmake -D 定义的变量,通常这些变量会存在 CMakeCache.txt 里面

  • find_package(OpenCV REQUIRED) 寻找包有两种模式 1. Module 2. Config

  1. Module
    CMake searches for a file called Find<PackageName>.cmake in the CMAKE_MODULE_PATH,
    CMAKE_MODULE_PATH: By default it is empty, it is intended to be set by the project. 默认情况下是空的,在项目中是set自己指定的
  2. Config
    到下列文件夹中去寻找 <PackageName>Config.cmake or <lower-case-package-name>-config.cmake
    <prefix>/                                                       (W)
    <prefix>/(cmake|CMake)/                                         (W)
    <prefix>/<name>*/                                               (W)
    <prefix>/<name>*/(cmake|CMake)/                                 (W)
    
    而 prefix 主要指的是以下几个重要的默认查找目录,优先级由高到低
    <PackageName>_ROOT / <package>_DIR
    CMAKE_PREFIX_PATH
    CMAKE_FRAMEWORK_PATH
    CMAKE_APPBUNDLE_PATH
    PATH
    
    <package>_Root 名为_ROOT的cmake变量或环境变量, 如果定义了_DIR cmake变量,那么_ROOT不起作用
    CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH cmake 缓存变量, 默认为空,通过
    cmake -CMAKE_PREFIX_PATH=Your Path设置
    <PackageName>_DIR CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH 环境变量
    PATH 环境变量

报错明显指出,找到了OpenCVConfig.cmake文件,但是没有找到二进制库,需要手动设置 OpenCV_DIR;
看到报错指出 OpenCV_FOUND 被设为了 false,同时也输出了如下信息:
在这里插入图片描述
打开OpenCVConfig.cmake文件,找到 Set OpenCV_FOUND FALSE的分支,发现果然是 OpenCV_LIB_PATH 出了问题

if(OpenCV_LIB_PATH AND EXISTS "${OpenCV_LIB_PATH}/OpenCVConfig.cmake")
	...
else
	set(OpenCV_FOUND FALSE)	

找到设置 OpenCV_LIB_PATH 的函数,发现 OpenCV_LIB_PATH 的设置与 OpenCV_ARCH 和 OpenCV_RUNTIME 两个变量有关,前者被正确设置,而后者没有被正确设置
在这里插入图片描述
打印 MSVC_VERSION,打印结果为1928,没有匹配的分支,至此定位到问题的原因

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值