初识 makefile 的构造
makefile 的意义
- makefile 用于定义源文件建的依赖关系
- makefile 阐明如何编译各个源文件并生成可执行文件
依赖的定义:
makefile 中的元素含意
-
targets
- 通常是须要生成的指标文件名
- make 所须要执行的命令名称
-
prerequisities
- 以后指标所依赖的其余指标或文件
-
command
- 实现指标所须要执行的命令
规定中的注意事项 1
-
targets 能够蕴含多个指标
- 应用空格对多个指标名进行分隔
-
prerequisites 能够蕴含多个依赖
- 应用空格对多个依赖进行分隔
规定中的注意事项 2
-
[Tab] 键:‘t’
- 每一个命令行必须以 [Tab] 字符开始
- [Tab] 字符通知 make 此时是一个命令行
-
续航符:
- 能够将内容离开写到下一行,进步可读性
一个 makefile 的依赖示例
all:test
echo "make all"
test:echo "make test"
依赖规定
- 当指标对应的文件不存在,执行对应命令
- 当依赖在工夫上比指标更新,执行对应命令
- 当依赖关系间断产生时,比照依赖链上的每一个指标
小 tips
makefile 中能够在命令前加上 @ 符,作用为命令无回显
第一个 make 的编译案例
hello.out : main.o func.o
gcc -o hello.out main.o func.o
main.o : main.c
gcc -o main.o -c main.c
func.o : func.c
gcc -o func.o -c func.c
[外链图片转存失败, 源站可能有防盗链机制, 倡议将图片保留下来间接上传(img-SCrWqtLh-1596850258618)(5E86E93772EF47C08DE789960383A7F7)]
小技巧
工程开发中讲最终 可执行文件名 和 all 同时作为 makefile 中第一条规定的指标
hello.out all : main.o func.o
gcc -o hello.out main.o func.o
小结
- makefile 用于定义源文件建的依赖关系
- makefile 阐明如何编译各个源文件并生成可执行文件
- makefile 中的指标之间存在间断依赖关系
- 依赖存在并且命令执行胜利时指标实现的充要条件