Makefile Intro
Makefile
Makefile 关系到整个工程的编译规则(先后顺序)
make: 一个解释makefile中指令的命令工具
课前小知识
- 编译(compile)、链接(link)、库文件(Library File)
- 编译: 将源文件编译成中间代码文件(windows .obj文件, Unix下的.o文件)
- 编译器值检测程序语法和函数、变量是否被声明.
- 链接: 将大量的Object File合成执行文件
- 链接器会在所有的Object File中寻找函数的实现
- 库文件: 将编译的中间文件打包(windows .lib文件, Unix .a Archive File)
Makefile
- 规则
prerequisties中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行
1 | target ... : prerequisities ... |
- target:
- object file 目标文件:
- execute file 可执行文件:
- label 标签:
- prerequisites:
- 依赖的文件
- command:
- 执行的命令
- make如何工作
1
2
3# makefile
edit : main.o kbd.o command.o display.o \
> make 会一层层找文件的依赖关系,知道最终编译初第一个目标文件, make只关注文件的依赖性.
参考资料
- [跟我一起写Makefile (PDF重制版)] (https://seisman.github.io/how-to-write-makefile/Makefile.pdf)