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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需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用户在图形界面登录