[英]C++ Cmake OpenCV
我第一次尝试运行 C++ 代码。 该文档建议下载 CMake 来编译也使用 OpenCV 的项目。 现在,我跑了 $cmake 。 在项目目录内的终端中,我运行了 $make,我得到了 100% 的构建。 当我运行 $g++ Fotokite.cpp 时出现此错误:
In file included from Fotokite.cpp:8:
./Fotokite.hpp:11:10: fatal error: 'opencv2/core.hpp' file not found
#include "opencv2/core.hpp"
^~~~~~~~~~~~~~~~~~
1 error generated.
任何人都可以帮助我了解发生了什么吗? 这是否与 makefile、opencv 或 cmake 有关?
谢谢
OpenCV 附带一个 CMake 配置文件,这应该是包含它的首选机制。 例如,您可以使用基于现代 CMake 目标的 CMake 方法包含 OpenCV,例如,让我们使用https://docs.opencv.org/master/db/df5/tutorial_linux_gcc_cmake.html 中的代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
现在要包含 OpenCV,我们可以使用find_package
。 下面的示例 CMake 文件将使用标准安装位置(针对 OpenCV 4.5 构建以进行测试)。 如果您正在针对 OpenCV 的本地版本进行构建,则可以使用本地构建的安装根目录将 PATH 选项传递给find_package
。 要包含 OpenCV,您可以使用 target_link_libraries 在安装步骤中链接到 OpenCV CMake 配置文件生成的目标,这将正确管理目标的所有传递依赖项(包括目录、编译器定义、编译器标志、链接库和等效字段用于此目标的传递依赖项)。
cmake_minimum_required(VERSION 3.18)
project( UseOpenCV )
find_package( OpenCV REQUIRED)
add_executable( UseOpenCV main.cpp )
target_link_libraries( UseOpenCV
PRIVATE
opencv_highgui
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.