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
2
3
4
target ... : prerequisities ...
command
...
...
- target:
  - object file 目标文件:
  - execute file 可执行文件:
  - label 标签:
- prerequisites:
  - 依赖的文件
- command:
  - 执行的命令
  • make如何工作
    1
    2
    3
    # makefile
    edit : main.o kbd.o command.o display.o \
    > make 会一层层找文件的依赖关系,知道最终编译初第一个目标文件, make只关注文件的依赖性.

参考资料