CMake:生成MS-VS-Project后无法找到OpenCV Headerfiles

时间:2016-07-19 16:35:52

标签: c++ visual-studio opencv header-files

我是CMake和OpenCV的新手,并且在CMake生成的Microsoft Visual Studio Project中遇到了一些问题。

我正在制作一个小视频捕捉程序,使用我的网络摄像头录制一个小的.avi视频。这个程序也适用于安装了Raspbian(Linux发行版)的小Raspberry Pi,这就是我想要使用CMake的地方。

我已经用Visual Studio创建了这个程序,一切正常。 但是当我尝试使用CMake构建它并想要编译生成的Visual Studio项目时,我在VS中得到以下错误:

  

错误C1083文件无法打开包含文件:“opencv2 / core.hpp”:没有这样的   文件或目录VideoCapture C:\ Program   Files \ opencv \ sources \ include \ opencv2 \ opencv.hpp 46

     

错误C1083无法打开包含文件:“opencv2 / core.hpp”:没有这样的文件   或目录VideoCapture C:\ Program   Files \ opencv \ sources \ include \ opencv2 \ opencv.hpp 46

     

错误C1083无法打开包含文件:“opencv2 / core.hpp”:没有这样的文件   或目录VideoCapture C:\ Program   Files \ opencv \ sources \ include \ opencv2 \ opencv.hpp 46

这个错误发生在头文件opencv.hpp中,它是OpenCV的一部分。从我的角度来看,这个错误不应该发生,因为我已经在CMakeLists.txt文件中正确添加了构建目标的包含路径。

CMakeLists.txt的内容:

cmake_minimum_required(VERSION 2.6)  
project(VideoCapture)   

# change the following path if you change the environment  
SET(OPENCV_DIR "C:/Program Files/opencv")

INCLUDE_DIRECTORIES("include" "${OPENCV_DIR}/sources/include")

add_executable(VideoCapture "src/VideoCapture.cpp" "src/VideoCaptureEx.cpp" "src/main.cpp")

target_link_libraries(VideoCapture "${OPENCV_DIR}/build/x64/vc14/bin/opencv_world310.dll")

文件树:

/Project
    |---CMakeLists.txt
    |---build
    |---include
    |      |--- VideoCapture.h
    |      |--- VideoCaptureEx.h
    |
    |---src
         |---main.cpp
         |---VideoCapture.cpp
         |---VideoCaptureEx.cpp

在main.cpp中,我从VideoCaptureEx类中创建一个对象,该类继承自VideoCapture和VideoCapture.h中包含所需的openCV头:

#ifndef _VIDEOCAPTURE_H_
#define _VIDEOCAPTURE_H_

#include <opencv2\opencv.hpp>
#include <string>
#include <chrono>
.
.
.

我也尝试使用find_package(...)cmake命令,但由于cmake无法找到配置文件,因此无效。 但是也应该这样做。

提前致谢!

0 个答案:

没有答案