cmake、makefile与make


  makefile是进行项目管理的项目文件,不同平台下的makefile文件各有不同的特点与写法,当需要将项目跨平台时,就需要为了适配迁入的新平台进行新makefile文件的配置。而make是执行makefile文件的一种机制与工具。为了应对跨平台的需要,针对不同平台下的makefile特点形成了一种共性的文件,叫cmake。cmake与makefile的关系类似与抽象与具体的关系,比如肉与牛肉、羊肉、鸡肉、鱼肉......的关系,可以由cmake文件生成不同平台下的具体的makefile文件,再由make进行执行。比如,在举例需要的情况下,在Windows环境中的某个项目由cmake生成的makefile(Windows)进行管理,当这个项目迁移到Linux环境下时,由cmake再生成makefile(Linux)进行管理,这样就实现了跨平台的管理。

参考资料:

[1] 浅析Makefile、make、cmake : https://zhuanlan.zhihu.com/p/431118510