cmake简单理解
1. 什么是CMake
1.1 gcc
gcc分为四步
预处理:gcc -E main.c -o main.i
编译:gcc -S main.i -o main.s
汇编: gcc -c main.s -o main.o
链接:gcc main.o -o main
1.2 Makefile
Makefile是用于编译和链接的。一个项目有许多文件组成,每个文件的改变都会导致项目的重新链接,但不是所有的文件都需要重新编译。Makefile可以记录文件信息,并决定哪些文件需要在链接时重新编译。Make工具通常在某些源文件更改后需要运行或更新任务时使用。Make工具需要读取一个makefile(或Makefile),其中定义了一系列需要执行的任务。您可以使用make将源代码编译成可执行程序。大多数开源项目将使用make来编译最终的二进制文件,然后使用make install命令来执行安装。
Maklefile难于编写,而且在于不同的系统环境下,就需要重新编写,
然而我们的CMake就是用来生成Makefile的,在我们切换环境时候,window下还会生成解决方案文件。在QT下还有qmake会生成CMake,CMake生成Makefile。
1.3 cmake
cmake的定义是什么 ?-----高级编译配置工具
当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了-----CMake!
1.4 cmake安装
1、绝大多数的linux系统已经安装了CMake
2、Windows或某些没有安装过的linux系统,去http://www.cmake.org/HTML/Download.html 可以下载安装
1.5 CMake一个HelloWord
2. CMake一个HelloWord-的语法介绍
2.1 PROJECT关键字
可以用来指定工程的名字和支持的语言,默认支持所有语言
PROJECT (HELLO) 指定了工程的名字,并且支持所有语言—建议
PROJECT (HELLO CXX) 指定了工程的名字,并且支持语言是C++
PROJECT (HELLO C CXX) 指定了工程的名字,并且支持语言是C和C++
该指定隐式定义了两个CMAKE的变量
_BINARY_DIR,本例中是 HELLO_BINARY_DIR
_SOURCE_DIR,本例中是 HELLO_SOURCE_DIR
MESSAGE关键字就可以直接使用者两个变量,当前都指向当前的工作目录,后面会讲外部编译