1. 问题场景
gcc(GNU Compiler Collection)即为GNU编译器套件,也可以简单认为是编译器,它可以编译很多种编程语言,包括C、C++、Objective-C、Fortran、Java等。当程序只有一个源文件时,直接就可以 用gcc命令编译它。但如果源文件太多,一个一个编译就会显得非常繁琐,于是研发人员想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具。
1.1 makefile
一个规则文件,make依据该规则文件来批处理执行编译。
问题:对于一个大工程,编写makefile是件极其复杂的事,手动编写不仅耗时且容易出错,于是研发人员又想到,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了CMake工具
2. 定义
CMake是一个跨平台的自动化 安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
2. 1原理
输入:组态档CMakeLists.txt文件(组态档是一种建构软件专用的特殊编程语言写的CMake脚本)
输出:各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
2.2 CMake 功能