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 @   小鲨鱼2018  阅读(399)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2022-10-10 关闭anaconda3 默认自动启动的命令
2022-10-10 github.com[0: 192.30.255.113]: errno=Connection refused
2022-10-10 centos7 中安装java8
2022-10-10 configure: error: HTSlib development files not found
2022-10-10 configure: error: htscodecs submodule files not present.
2022-10-10 utils.c:33:18: fatal error: zlib.h: No such file or directory
2021-10-10 ubuntu中root用户在图形界面登录
点击右上角即可分享
微信分享提示