欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cmake 与 make 区别

程序员文章站 2022-07-15 11:00:47
...

什么是make,什么是cmake,什么是Makefile,什么是CMakeLists.txt

一个可以运行的程序(*.exe)是代码生成的,但是代码是如何运行呢?

这里会有趣易懂的一步一步介绍:

内容有删减大神请绕过,学习是在已知的基础上的扩充与发散

先写一个简单的源代码:main.c

main.c

接着生成 main 可执行文件

//在main.c的同目录下
gcc -o main main.c

介绍上面这句话的意思,明白的就跳过

这一句gcc -o main main.c实际上执行了多条命令,暂时可以不考虑
在美国有一个叫GNU的公司,开发了一个很厉害的命令工具,可以将.c文件生成可执行文件,这个工具就是gcc(GNU Compiler Collection)编译器;

随着项目的增加

//增加 123.c 123.h 
main.c 123.c 123.h

接着生成 main 可执行文件

//在同级目录下输入gcc的命令:
gcc -c -o main.o  main.c   
gcc -c -o 123.o   123.c   
gcc -o main main.o main.o

随着项目的再增加…

是不是非常的崩溃,我们的主要任务是写程序,不应该有大量的工作放到这些重复的工作上

所以这个美国的GNU公司又开发出了一个工具叫make,GNU公司说你安装了我的make工具你只需要在你们的同级程序目录下输入命令make就会生成可执行文件了,但是需要配置一个叫做Makefile的文档,在这个文档里需要写上你自己的程序文件的文件名+库文件+路径名[email protected]#¥%…等信息,就OK了,是不是很简单。

main.c 123.c 123.h Makefile	  //目录
# make                        //执行make命令就生成main可执行文件了
# main                        //生成的main可执行文件

这个Makefile里面需要添加的文件名+库文件+路径名[email protected]#¥%…等信息太复杂了,还需要学语法,函数,即时、延时变量一堆规则,这时候旁边的kitware公司的大神想如果能自动生成Makefile文件就多爽,就不用学这些语法、函数了,所以kitware公司开发了一个Cmake工具,可以自动生成Makefile文件,

但是需要配置一个叫做CMakeLists.txt的文档,再输入一个make . 命令。

又配置文档?别担心CMakeLists.txt文件非常非常简单轻松十分钟就学会,

试试吧

main.c 123.c 123.h CMakeLists.txt	  //目录
make .								 //输入make . 后生成Makefile文件
make                                  //执行make

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fMsGYZz6-1588086752051)(./image/make 和 Cmake.png)]

      //执行make
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428231335590.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMjYxMTAx,size_16,color_FFFFFF,t_70#pic_center)

后面会详细介绍Cmake的用法