Linux项目自动化构建工具-make/Makefile
1. 背景介绍
- 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力
- 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
- makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率
- make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法
- make是一个命令,Makefile是一个当前目录下的一个文件,两个搭配使用,完成项目自动化构建
2. 先见一见Makefile是如何工作的?
- 在当前目录下,创建一个Makefile文件(Makefile的首字母大小写均可)

- 编写Makefile文件,如下:
mycode:mycode.c
gcc mycode.c -o mycode
clean:
rm -f mycode
- 有了Makefile,编译项目我们不用再gcc命令了,可以直接make
- make命令会自动帮我们在当期目录下找Makefile,然后根据Makefile内部的依赖关系和依赖方法,执行对应的依赖方法,帮我们生成对应的可执行程序
- make之后我们再进行make它就不允许我们make了,这个时候我们需要rm清理可执行程序,但是rm风险太大,我们容易误删文件
- 所以我们的Makefile它不仅支持我们编译项目,也支持我们清理项目
- 示例:

- 通过示例,我们现在只需要知道make是一个命令,Makefile是一个当前目录下的文件
- 我们现在有如下三个问题,解决了这三个问题我们就可以大致了解make/Makefile了