目录
1、背景
make是一个命令
makefile是一个文件
make和makefile存在的价值是自动化的构建项目
2、Makefile理解
编写makefile时,要有依赖关系和依赖方法,编写makefile目标是把我的源代码编译自动形成可执行。
a、依赖关系 (表明谁依赖谁)
b、依赖方法(通过依赖方法如何形成目标文件)
makefile在自顶向下扫描时,默认先找到你要形成的第一个目标文件,并且执行,只会使用一对依赖关系和依赖方法,想执行任何一个新的目标可以在make后面加上名字,例如make clean
3、单文件多文件实现
3.1、单文件示例
3.2、多文件示例
创建test.h(包含方法的声明) test.c (包含方法的实现)main.c(main函数所在的地方会调用test.h里声明的方法),编译链接时把test.c和main.c两个文件合起来形成可执行。
一般编译项目时会把源文件main.c ,test.c编译成main.o,test.o,加上libc.so(动态库)合并链接形成可执行
4、总结
make是一个命令,makefile是一个文件,makefile文件里面包含依赖关系和依赖方法,一般必须有依赖关系和依赖方法,依赖关系可以不依赖任何文件,写makefile时要有目标,怎么生成项目,怎么清理项目,生成项目进行依赖关系和依赖方法的编写,清理项目使用.PHONY定义一个伪目标,使用伪目标来清理项目,伪目标总是被执行的,makefile辨别程序是否重新编译,取决于源文件和可执行程序时间的新旧,来决定程序是否重新编译。