## 为什么学Makefile 大家第一次写hello world程序的时候一定都记得,在编辑完`helloworld.c`之后,需要用`gcc`编译生成可执行文件,然后再执行(如果你不理解前面这段话,请先自行谷歌`gcc 编译`并理解相关内容)。但如果你的项目由成百上千个C源文件组成,并且星罗棋布在各个子目录下,你该如何将它们编译链接到一起呢?假如你的项目编译一次需要半个小时(大型项目相当常见),而你只修改了一个分号,是不是还需要再等半个小时呢? 这时候Makefile就闪亮登场了,它能让你在一个脚本里(即所谓的Makefile)定义整个编译流程以及各个目标文件与源文件之间的依赖关系,并且只重新编译你的修改会影响到的部分,从而降低编译的时间。 ## 如何学习Makefile 这里有一篇写得深入浅出的[文档](https://seisman.github.io/how-to-write-makefile/overview.html)供大家参考。 Makefile掌握起来相对容易,但用好它需要不断的练习。将它融入到自己的日常开发中,勤于学习和模仿其他优秀开源项目里的Makefile的写法,总结出适合自己的template,久而久之,你对Makefile的使用会愈加纯熟。