cmake编译opencv项目

it2022-05-05  155

目录

cmake编译opencv项目环境具体步骤1.新建一个项目Project2.编写CMakeLists.txt3.编译 其他方法与优缺点

cmake编译opencv项目

环境

系统:Ubuntu 18.04.2 LTS x86_64 OpenCV:4.1.0 编辑器:VIM

具体步骤

1.新建一个项目Project

example.cpp

#include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat src; src = imread("/home/dt/picture/iu.jpg"); //这里地址不能使用“~/picture/iu.jpg" if (!src.data) { cout << "no image!" <<endl; return -1; } imshow("demo”,src); waitKey(0); return 0; }

2.编写CMakeLists.txt

在项目文件中新建CMakeLists.txt 此处结合官方文档与源码中的例子(opencv/examples/cpp/example_cmake/CMakeLists.txt):

# 这个是cmake最小版本要求 cmake_minimum_required(VERSION 3.1) # Enable C++11,这一段是源码里的 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # 填写你的项目名称Project project( Project ) # 这一句是寻找你的OpenCV位置 find_package( OpenCV REQUIRED ) # 可以选择将一些信息打印出来,也可以不打印 # 依次为OpenCV位置,版本,库,包含路径 message(STATUS "OpenCV library status:") message(STATUS " config: ${OpenCV_DIR}") message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " librarier: ${OpenCV_LIBS}") message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}") # 添加包含目录 include_directories( ${OpenCV_INCLUDE_DIRS} ) # 把项目名和源文件名填上 add_executable( Project example.cpp ) # 填项目名 target_link_libraries( Project ${OpenCV_LIBS} )

3.编译

编写好CMakeLists.txt后,在项目文件夹里运行一次$ cmake .,这样项目里的库,头文件等等都处理好了; 之后我们每次修改example.cpp后,编译与运行只需要: $ make $ ./Project

其他方法与优缺点

可以选择直接编译,但是我老是报错

$ g++ example.cpp -o test `pkg-config --cflags --libs opencv4`

cmake编译opencv项目是官方推荐(毕竟官方文档写的这种方法) 其优点: 1.清楚,配置信息通过CMakeLists.txt可以打印出来 2.方便,编好CMakeLists.txt并$ cmake .后,只需要$ make & ./Project即可


最新回复(0)