我是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无法找到配置文件,因此无效。 但是也应该这样做。
提前致谢!