繁体   English   中英

C++ Cmake OpenCV

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM