###小记
就在前几天自己找到了应该算是正式的第一份工作,其中过程很辛苦但也很幸运,自己也开始步入社会,接受社会的洗礼,总之希望自己可以走的更远,更优秀,并让优秀成为一种习惯。
由于工作业务需要,最近在学习 Makefile ,由于以前没怎么接触过,linux 也基本上没怎么用过,所以接下来会恶补一些这方面的知识,并记录在此,当然也会分享一些自己觉得好的前辈们的文章,欢迎大家一起前来交流学习,共同进步。
###概述
1. 什么是 Makefile ?
首先,它关系到了整个工程的编译规则。我们知道一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。使用它通常可以让一个文件变成另一个文件,在大多数情况下,我们主要用它来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件。
举个例子:假设有一个主程序代码(main.c)、三份函数代码(a.c、b.c、c.c)以及一个头文件(d.h)。通常情况下,我们需要这样编译它:
gcc -o d main.c a.c b.c c.c
如果没有makefile,在开发+调试程序的过程中,我们就需要不断地重复输入上面这条编译命令,要不就是通过终端的历史功能不停地按上下键来寻找最近执行过的命令。这样做两个缺陷:
- 一旦终端历史记录被丢失,我们就不得不从头