make 和 cmake的区别

 

001、 首先产生的是gcc 对单个源文件的编译 

首先先来了解一下gcc,gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(包括C、C++、Objective-C、Fortran、Java等等)。当我们的程序只有一个源文件时,直接就可以用gcc命令编译它

 002、 当需要编译的文件过多时,可以使用make命令对makefile进行批量编译。 make命令诞生的原因

但是当程序包含很多源文件时,用gcc命令逐个去编译时,就很容易混乱而且工作量大。所以就出现了Make工具。它是一个自动化编译工具,我们可以使用一条命令实现完全编译,但是需要编写一个规则文件,Make工具依据它来批量处理编译,这个文件就是Makefile文件。Makefile在一些简单的工程完全可以人工手写,但是当工程非常大的时候,手写Makefile也是非常麻烦的,如果换了个平台Makefile又要重新修改。

003、 cmake的出现是为了解决大量的makefile编写的问题,即cmake作用于 cmakelists文件,产生makefile; 再由make 对 makefile进行处理,cmake命令诞生的原因

这个时候出现了CMake这个工具,CMake能够输出各种各样的Makefile或者project文件,从而帮助程序员减轻负担。但是随着而来的也是需要编写CMakeLists文件。当然CMake还有其他功能,就是可以跨平台生成对应能用的Makefile,我们不需要自己再去修改。

 

总结:

01、cmake 作用于 CMakeLists.txt,产生Makefile。

02、make  作用于 Makefile,  产生编译结果。

03、gcc作用于单个源文件,进行编译。

04、cmake位于make的上游,且支持跨平台

 

参考:

01、 https://blog.csdn.net/AAAA202012/article/details/123938845

 

posted @ 2023-10-10 16:39  小鲨鱼2018  阅读(190)  评论(0编辑  收藏  举报