Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMake和OpenCV 3.0_C++_Windows_Opencv_Cmake - Fatal编程技术网

C++ CMake和OpenCV 3.0

C++ CMake和OpenCV 3.0,c++,windows,opencv,cmake,C++,Windows,Opencv,Cmake,我正试图用Cmake和OpenCV 3.0建立一个非常基础的项目 我的文件夹结构如下所示: OpenCVTest | |--- build |--- data |--- include |--- src |--- CMakeLists.txt CMakeLists.txt文件包含以下内容: cmake_minimum_required(VERSION 3.4) project(OpenCVTest) find_package(OpenCV REQUIRED) include_directo

我正试图用Cmake和OpenCV 3.0建立一个非常基础的项目

我的文件夹结构如下所示:

OpenCVTest
|
|--- build
|--- data
|--- include
|--- src
|--- CMakeLists.txt
CMakeLists.txt
文件包含以下内容:

cmake_minimum_required(VERSION 3.4)
project(OpenCVTest)

find_package(OpenCV REQUIRED)

include_directories(
    ${CMAKE_SOURCE_DIR}/include
    ${OpenCV_INCLUDE_DIRS})

set(SOURCES
    src/main.cpp
    src/MyData.cpp

    include/MyData.h)

add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
我提取了OpenCV,设置环境变量
OpenCV\u DIR=\OpenCV\build\x86\vc12
,并按照OpenCV+CMake教程的建议,将
%OpenCV\u DIR%\bin
添加到Windows中的
路径
变量中

运行CMake时,出现以下错误消息:

CMake Error at CMakeLists.txt:4 (find_package):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has asked 
  CMake to find a package configuration file provided by "OpenCV", but CMake did 
  not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

  OpenCVConfig.cmake
  opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed
因此,我更改了环境变量
OpenCV\u DIR=\OpenCV\build
的值,该变量位于
OpenCVConfig.cmake
文件中

完成此操作后(并重新启动Windows以更新环境变量!!!),CMake能够成功配置和生成项目

但是,CMake使用静态库链接

OpenCV STATIC: ON
Found OpenCV 3.0.0 in <PATH_TO_CMAKE>/opencv/build/x86/vc12/staticlib
以前

find_package(OpenCV REQUIRED)
将强制CMake使用动态链接,但是,
PATH
变量不包含指向OpenCV DLL的正确路径,并且需要添加
\OpenCV\build\x86\vc12\bin
(对于32位和VS2013)

以上所有的解决方案似乎都很不雅观,对我来说也不是很方便。我还尝试了几个
FindOpenCV.cmake
文件,但是没有一个能够正确找到OpenCV目录


我的问题是:是否有人能提供一个解决方案来设置一个非常基本的CMake+OpenCV 3.0示例项目,该项目没有上述缺点?

可能重复使用OpenCV\u DIR的源代码在哪里?你是一周内第二个问这个问题的人,也许我们应该追问一下文章的作者假设您的意思是使用完全相同的大写字母的来源,您的链接适用于beta 3.0,但在3.0.0版本中,它没有改进:使用正确的大写字母对您有效吗?它没有解决我的问题,没有。如果环境变量名为“OPENCV_DIR”或“OPENCV_DIR”,则会发生CMake错误可能重复使用OPENCV_DIR的源代码在哪里?你是一周内第二个问这个问题的人,也许我们应该追问一下文章的作者假设您的意思是使用完全相同的大写字母的来源,您的链接适用于beta 3.0,但在3.0.0版本中,它没有改进:使用正确的大写字母对您有效吗?它没有解决我的问题,没有。如果环境变量名为“OPENCV_DIR”或“OPENCV_DIR”,则会发生CMake错误
find_package(OpenCV REQUIRED)