1、CMake
定义:CMake是一个跨平台编译工具,可以用来自动输出makefile文件;
用法:(1)想要自动生成makefile,还需要编写对应的CMakeLists.txt文件;
(2)在CMakeLists.txt的同级目录下使用"cmake ."命令就能生成对用的makefile文件;
语法解释,以下面这个脚本为例:
cmake_minimum_required(VERSION 2.8) //cmake最低要求版本2.8以上 project( DisplayImage ) //project不是强制性的,最好加上,这会引入两个变量:DISPLAYIMAGE_BINARY_DIR和DISPLAYIMAGE_SOURCE_DIR find_package( OpenCV REQUIRED ) //寻找库文件 add_executable( DisplayImage DisplayImage.cpp ) //生成可执行文件 target_link_libraries( DisplayImage ${OpenCV_LIBS} ) //可执行文件和库之间建立链接
2、makefile
定义:makefile是一个文件,它定义了一系列的规则来指定,哪些文件需要先编译,哪些后编译,哪些需要重新编译,甚至于进行更复杂的功能操作;
cmake和makefile的关系如下:
第一个例子:编译一个opencv小程序
(1)编写源文件
#include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; //DisplayImage.cpp 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; }
(2)编写CMakeLists.txt文件
cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage.cpp ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )
(3)编译
cmake . make
(4)执行
./DisplayImage lena.jpg
(5)结果
原文地址:https://www.cnblogs.com/zf-blog/p/11904303.html
时间: 2024-10-10 04:16:28