首页 > 代码库 > CMake入门
CMake入门
CMake入门
最后更新日期:2014-4-21 bykagula
环境:Windows 8.1 64bit英文版,VisualStudio 203 Update1英文版,CMake 2.8.12.2
正文:
CMake是一个跨平台的,开源项目,可以通过CMakeLists.txt 文件产生当前操作系统支持的构建文件(Build System),有了构建文件你就可以在当前操作系统中编译、链接C++源码文件,生成库文件或可执行文件了。例如为 Unix 平台生成 makefiles,为 Windows MSVC 生成Solution/Projects。
本文通过一个WindowsC++ Project Demo,来理解CMake工具的功能和用途,以及如何使用CMake的一个概念。
安装
从www.cmake.org网站上下载cmake-2.8.12.2-win32-x86.exe并安装,从http://cmaketools.codeplex.com/网站中下载CMakeTools for Visual Studio并安装。
CMakeTools for Visual Studio是Visual Studio的扩展,是个开源免费的项目,支持CMakeLists.txt文件语法高亮, 还为VisualStudio主菜单Tools菜单项, 添加了[CMake GUI]和[CMake Help]菜单项,方便用户从VisualStudio访问CMake工具和帮助。
准备源代码
首先我们在D分区新建Tmp目录,你也可以是其它路径关键是路径中不能出现中文,否则CMake工具读取文件会失败。
打开Visual Studio,主菜单[new ]->[File],在D:\Tmp目录下新建CMake_Tutorial1.cpp文件,源文件内容如下:
#include <iostream> using namespace std; int main(int argc, wchar_t* argv[]) { wcout << L"Hello,World!" << endl; getchar(); }
使用同样的方式,在D:\Tmp下新建CMakeLists.txt文件,源文件内容如下
project(CMake_Tutorial1) #这里设置项目名称 cmake_minimum_required(VERSION 2.8) #要求CMake的最低版本为2.8 #用于将当前目录下的所有源文件的名字保存在变量 DIR_SRCS 中 aux_source_directory(. DIR_SRCS) #用于指定从一组源文件 source1 source2 … sourceN(在变量DIR_SRCS中定义) 编译出一个可执行文件且命名为CMake_Tutorial1 add_executable(CMake_Tutorial1 ${DIR_SRCS})
CMakeLists.txt文件指示CMake如何生成构建文件。
现在d:\tmp目录下已经有了C++源文件和CMakeLists.txt两个文件,那我们在d:\tmp目录下建立build文件夹,用来存放CMake生成的构建文件。
使用CMake
在VisualStudio的主菜单[Tools]->[CMakeGUI]中启动CMake图形应用程序,窗口的“Where is the source code”输入项设置为“d:\tmp”,“where to build the binaries”输入项设置为“d:\tmp\build”,点击[Configure]按钮出现“cmake-gui”对话框,在“specifythe generator for this project”中选择“Visual Studio 12”,选中下面的“use default native compilers”单选按钮,点击[Finish]按钮关闭对话框。
再次点击[Configure]按钮,列表框两条变量定义,背景的红色变为白色,点击[Generate]按钮后,窗口的信息提示框中显示“Configuring done”,“Generating done”提示,现在关闭窗口就可以了。
现在“D:\tmp\build”目录下CMake已经为我们生成了sln文件,双击它,操作系统打开VisualStudio 2013软件,运行Viisual Studio主菜单下的[Build]->[Build Solution]命令成功后,在“D:\tmp\build\Debug”目录下就生成了“CMake_Tutorial1.exe”文件,进到这个文件夹, 双击“CMake_Tutorial1.exe”就能正常运行。
在VisualStudio 2013中,单击[Local Windows Debugger]按钮无法启动程序,这不用管它,这里主要是为了了解CMake工具的使用流程,所以达到目的就可以了。
接下来几篇CMake工具的文章,我会介绍在VisualStudio 2013下做的C++工程,如何通过CMake工具在Linux系统中编译、运行和调用。
参考资料
[1] 《CMake入门》
http://name5566.com/1795.html
CMake入门