Cmake自动配置openCV

首先,在使用CMake之前请先从CMake网站(http://www.cmake.org)上下载最新版的安装文件并在你的机子上安装,你也可以下载CMake源码,然后在你机子上编译;对于使用CMake的童鞋,建议用傻瓜式安装方式就行了(这里所做的例子全是在Windows 7平台上的。)

然后,还要确保你的机子已经安装了一种编译器,我机子上安装的是VS2010。你也可以选择其他编译器,建议用VS2008或以上版本的,个人觉得比较好用。

接着在你机子的某个盘里建一个新的文件夹,如我这里的完整路径是:D:\CMake\CMake-Study\HelloCMake; 然后在HelloCMake文件夹里建立一个HelloCMake.cpp文件,里面的代码如下:

#include <iostream>

int main()

{

  std::cout<<"Study CMake Together - Hello CMake!"<<std::endl;

  return 0;

}

然后在HelloCMake文件夹里建立一个CMakeLists.txt文件,注意文件名不能是别的,必须叫这个名字。里面的内容如下:

cmake_minimum_required(VERSION 3.3.1)

project(HelloCmake)

add_executable(HelloCMake hellocmake.cpp)

接着在HelloCMake的同级目录里建立一个新的文件夹,就叫做HelloCMake-bin,在我机子上的完整路径是:D:\CMake\CMake-Study\HelloCMake-bin,你可以针对自己的目录路径对号入座。

然后打开CMake程序,界面如图(1):

 

一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK

 图(1)                                   

一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK

 图(2)

接着把包含CMakeLists.txt和HelloCMake.cpp文件的完整路径给”where is the source code”,把最后建立的HelloCMake-bin目录的完整路径给”where to build the binaries”,然后按Cofigure,界面如图(2)。

Configure完了以后,再按Generate,直到所有的红色选项都变成灰色为止。界面如图(3)。然后打开HelloCMake-bin,你会发现原来空的文件夹里面自动生成了好多文件,如图(4)。

  

一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK

图(3) 

 

一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK

  图(4)

到此为止,工程构建完成,打开HelloCMake-bin目录下的HelloCMake.sln,里面有三个工程,分别是:ALL_BUILD;HelloCMake;ZERO_CHECK。这三个工程的大概作用如下(个人理解而已),HelloCMake就不用说了,自己要建立的那个工程;ALL_BUILD是管理整个项目的工程;ZERO_CHECK是实时监视CMakeLists.txt文件变化的工程,一旦CMakeLists.txt里的内容发生了任何变化,ZERO_CHECK就会告诉编译器要重新构建整个工程环境。所以,你可以先把工程关掉,打开CMakeLists.txt文件,更改里面的内容以后,把根据以上说的步骤走一遍CMake;你也可以在编译器环境(如VS2008)中更改CMakeLists.txt文件,然后直接F7编译工程。如果你选择后者,你会发现如图(5)所示的现象发生。

因为你改变了CMakeLists.txt的内容,工程的环境要重新构建、设置。所以你必须加载新的工程环境设置。点Yes,然后点Reload。重新加载设置过的工程环境。

另外一个经常看某些童鞋问的,就是当弹出图(6)所示的界面时要怎么办?能怎么办?界面上提示已经灰常清楚了,指定exe的路径给它,然后点OK就可以了;出现这种情况的原因是你把没有生成exe可执行文件的工程设为启动工程了,如图(6)所示,你会发现ALL_BUILD这个工程名字是黑体显示的,表示它是启动工程;或者你把生成exe可执行文件的工程,如这里的HelloCMake右击->设置为启动工程,也不会出现如图(6)所示的界面。

好,这些比较琐碎的东西介绍完,我们一起来看看CMakeLists.txt里面的代码表示什么意思,争取每句代码都作解释,如果有不对的地方,一定要告诉我!

一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK

图(5)
一起学习CMake – 01 - 水灵 - VTK/ITK/IGSTK
 图(6)

把CMakeLists.txt里的内容再罗列出来:

1. cmake_minimum_required(VERSION 3.3.1)

2. project(HelloCmake)

3. add_executable(HelloCMake hellocmake.cpp)

第1行,cmake_minimum_required(VERSION 3.3.1)这是对CMake版本的要求,基本上每个CMakeLists.txt文件里都会有这句代码,cmake_minimum_required是cmake里的命令,可大写小写。VERSION这个关键字必须是大写,而且不能省略;3.3.1就是CMake的版本号。

第2行,project(HelloCmake),project也是CMake的命令,里面的参数HelloCMake是你要生成的工程的名字,换句话说就是生成的***.sln或者***.dsw等工程项目文件的名字。

第3行,add_executable(HelloCMake hellocmake.cpp),add_executable同样是CMake的命令,链接有关的源文件,然后生成exe可执行文件,这是这个命令的作用。第一个参数是生成的exe文件的文件名,一般与project里的工程名一致,这样编译生成的文件就分别是HelloCMake.sln和HelloCMake.exe,当然也可以不一样。Add_executable()后面的是一个参数列表,可带多个要编译的文件名,中间以空格或回车等隔开,如可以加入:

add_executable(HelloCMake hellocmake.cpp hellocmake.h)

这样就把CMake里最常用的三个命令介绍完了,分别是cmake_minimum_required; project; add_executable等,关于这三个命令的完整参数列表可以参考http://www.cmake.org网站上的东西,也可以从http://vislabproject.googlecode.com/svn/trunk/CMake/下载CMake入门的一些英文资料。

注意:如果出现dos窗口一闪而过的情况,可以使用Ctrl+F5编译运行。

posted @ 2015-10-26 14:08  xiaobing小兵  阅读(378)  评论(0编辑  收藏  举报