如何修复警告 "Found OpenCV Windows Pack but it has no binaries compatible with your configuration"?

How to fix warning "Found OpenCV Windows Pack but it has no binaries compatible with your configuration"?

我正在尝试在 VS Code 中使用 OpenCV。 这是我所做的:

为 windows 安装了 OpenCV。

添加了“C:\opencv\build\x64\vc15\bin”、“C:\opencv\build\x64\vc15\lib”PATH 环境变量。

这是我的 CMakeLists.txt 文件。

cmake_minimum_required(VERSION 3.0.0)
project(opencvtest VERSION 0.1.0)

include(CTest)
enable_testing()

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )

add_executable(opencvtest main.cpp)

target_link_libraries( opencvtest ${OpenCV_LIBS} )

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

但是文件抛出以下错误:

[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=C:\TDM-GCC-64\bin\x86_64-w64-mingw32-gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\TDM-GCC-64\bin\x86_64-w64-mingw32-g++.exe -Hc:/Users/Administrator/Desktop/open -Bc:/Users/Administrator/Desktop/open/build -G "MinGW Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- OpenCV ARCH: x64
[cmake] -- OpenCV RUNTIME: mingw
[cmake] -- OpenCV STATIC: OFF
[cmake] CMake Warning at C:/opencv/build/OpenCVConfig.cmake:190 (message):
[cmake]   Found OpenCV Windows Pack but it has no binaries compatible with your
[cmake]   configuration.
[cmake] 
[cmake]   You should manually point CMake variable OpenCV_DIR to your build of OpenCV
[cmake]   library.
[cmake] Call Stack (most recent call first):
[cmake]   CMakeLists.txt:7 (find_package)
[cmake] 
[cmake] 
[cmake] CMake Error at CMakeLists.txt:7 (find_package):
[cmake]   Found package configuration file:
[cmake] 
[cmake]     C:/opencv/build/OpenCVConfig.cmake
[cmake] 
[cmake]   but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
[cmake]   NOT FOUND.
[cmake] 
[cmake] 
[cmake] -- Configuring incomplete, errors occurred!

我正在尝试 运行 包含 <opencv2/opencv.hpp>.

的 VS Code 中的 C++ 文件

如错误提示,CMake 找到了您的 OpenCV 安装,但它不兼容。它与什么不兼容?你的编译器。 OpenCV 安装是用 MSVC 15 构建的(它还包括一个 14 构建)。您已要求 CMake 使用 MinGW 作为您的编译器。库需要使用相同的(好吧,有一些回旋余地)编译器构建才能使一切正常工作。

您有两个选择:

  • 自己使用 MinGW 构建 OpenCV,或尝试 third-party OpenCV 的 MinGW 二进制分发版。网络搜索“opencv mingw”出现了一些 可能性。
  • 为您的项目使用 MSVC 编译器。 Microsoft 提供了一些免费版本的工具。只需确保安装可选的旧工具集,以便您可以访问 VC 15 种与 OpenCV 匹配的工具。