簡體   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