本文为进来学习的总结,记录了学习CmakeList.txt文档的各个步骤,适合从零开始理解CmakeList.txt,可能存在错误之处,望批评指正。
0 Cmake的起源
为什么有CmakeList.txt文档,这就要从C++说起了。在完成C++的代码之后想要把程序运行起来就需要把C++转换成可执行文件,具体来说,编译分为以下四个步骤:
(1)预处理;(2)编译;(3)汇编;(4)链接。
具体来讲,我们可以把前三部看成一个黑盒,调用相应的指令就可以帮助我们直接完成,前三步完成之后会把.c或,cpp为后缀的文件转换成了.o为后缀的文件,第四步可以理解为当我们的程序调用了别的.h或其他的.cpp文件时,需要将这些内容和我们的程序链接到一起。
在ubuntu 系统中可以使用gcc命令来完成以上四步的操作。在windows系统的,我们所使用的IDE,例如visual studio会自动帮我们完成,就不需要我们完成以上步骤了。但使用gcc有如下几个弊端:
(1)每次修改程序过后都要重新写一遍gcc操作语句,麻烦;
(2)每次都要把所有文件全部编译一遍,费时。
基于此,make诞生了,make是一种工具,用来调用makefile,所谓的makefile可以理解为把我们所写的gcc命令打包为一个文件,当我们使用make命令的时候,就会自动调用makefile文件,根据文件里的内容进行相应的操作。这样当我们修改了我们的程序之后,只需要一个make命令就可以完成操作了,解决了问题(1),对于问题(2),make会自动只完成你修改过的文件的操作,对于没有修改的文件则不会进行操作。