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