我使用了预构建的OpenCV 3.0.0版本。它在我直接创建Visual Studio项目时以及添加include和library目录时都有效。
现在我正在创建一个CMakeList.txt文件(这样我就可以在不同的系统上运行相同的代码)。它将用于在Windows上创建Visual Studio项目,在Unix上创建Makefile等。
cmake_minimum_required(VERSION 2.8)
project( Facade )
find_package( OpenCV REQUIRED )
add_executable( Facade grammar.cpp )
target_link_libraries( Facade ${OpenCV_LIBS} )
当我在Windows上生成Visual Studio文件时,出现以下错误:
CMake Warning at C:/opencv/build/OpenCVConfig.cmake:166 (message):
Found OpenCV Windows Pack but it has no binaries compatible with your
configuration.
You should manually point CMake variable OpenCV_DIR to your build of OpenCV
library.
Call Stack (most recent call first):
CMakeLists.txt:3 (find_package)
CMake Error at CMakeLists.txt:3 (find_package):
Found package configuration file:
C:/opencv/build/OpenCVConfig.cmake
but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
NOT FOUND.
目前,OpenCV_DIR是C:\ opencv \ build,它包含CMake文件。如果我将OpenCV_DIR指向C:\ opencv \ build \ x64 \ vc12,它说,找不到CMake文件。
我该如何解决这个问题?
答案 0 :(得分:3)
您使用哪个生成器字符串进行CMake配置步骤?对于VC12 x64,您需要使用-G "Visual Studio 12 Win64"
(如果您使用的是CMake 3,则使用-G "Visual Studio 12 2013 Win64"
)。请注意,您需要在末尾包含Win64
才能获得x64平台。
OpenCV CMake配置脚本检查以确保您使用x64二进制文件是相当方便的。您将CMake配置为构建32位二进制文件,如果您能够构建可执行文件,则会导致运行时错误。
答案 1 :(得分:0)
以防万一其他人遇到此问题,我是通过使用旧的CMake配置脚本来解决的。安装VS2017后,我遇到了这个错误-事实是一些自动生成的CMAKE配置具有以下内容:
elseif(MSVC_VERSION EQUAL 1910)
set(OpenCV_RUNTIME vc15)
我检查了MSVC_VERSION,那是1916年,仍然是VC15,但是文件错误地错过了它。我改为:
elseif((MSVC_VERSION EQUAL 1910) OR (MSVC_VERSION GREATER 1910))
set(OpenCV_RUNTIME vc15)
它就像一种魅力。