makefile语法
什么是makefile
makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要重新编译,如何进行链接等操作。
makefile就是自动化编译,告诉make命令如何编译和链接
makefile里有什么
makefile 包含以下五个:
- 显示规则
- 隐晦规则
- 变量定义
- 文件指示
- 注释
makefile规则
target ... : prerequisites ...
command
或者
target ... : prerequisites ... ;command
注意 一个是冒号,一个是分号
在同一行 可以使用分号进行分割,如果不在同一行 使用tab连接 如果命令太长可以使用反斜杠换行
参数 | 含义 |
---|---|
target | 目标文件。可以使Object File 也可以是执行文件,还可以是标签(Lable) |
prerequisites | 依赖文件,即要生成那个target所需要的文件或其他target |
command | make需要执行的命令 |
makefile 示例
当前文件存在main.c tool.c tool.c三个文件
下面吗是makefile文件内容
main :main.o tool.o
gcc main.o tool.o -o main
.PHONY:clean
clean :
-rm main *.o
执行 make 后输出如下
cc -c -o main.o main.c
cc -c -o tool.o tool.c
gcc m