cmake 与 make 区别
什么是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的用法