linux之Makefile语法
1.在同一级目录下创建文本文档Makefile文件,和hello.c的文件,#在Makefile中是注释的意思。
2.用make直接进行编译,会生成.o、.i、.S.等文件。
第一层 显示规则:
1.目标文件:依赖文件(可以省去预编译,汇编,编译)
[Tab键]指令
2.第一个目标文件是我们的最终目标,下面的hello是我们的最终目标。
3.伪目标:.PHONY:
rm -rf hello.S hello.i hello.o(指定删除你不需要的文件)
4.Makefile文件书写
hello:hello.o //hello是目标文件,hello.i是依赖文件
gcc hell.o -o hello
hello.o:hello.S
gcc -c hello.S -o hello.o
hello.S:hello.i
gcc -S hello.i -o hello.S
hello.i:hello.c //hello.i是目标文件,hello.c是依赖文件
gcc -E hello.c -o hello.i
上面的可以直接由下面的得到目标文件hello文件
hello:hell.o //hello是目标文件,hello.o是依赖文件
gcc hello.o -o hello //可以直接得到hello
hello.o:hello.c
gcc -c hello.c -o hello.o
.PHONY: //固定的格式
clear: //自定义的名字,作用是删除你不需要的东西,可以在终端执行 make clear进行删除
rm -rf hello.S hello.i hello.o
第二层 变量
在第一层的基础上进行变量替换:
变量 = (替换) +=(追加) :=(恒等于)
示例:
VAL=hello //替换
VAL+=hello1 //追加
A:=gcc //恒等于,gcc为不可变内容
B=hello.o
书写规范:注意加上一个$(变量名);
$(VAL):$(B) //VAL是目标文件,B是依赖文件
第三层 隐含规则:
%.c(任意的.c文件 *.c(所有的.c文件)
%.c:%.o
gcc -c %.c -o %.o
第四层 通配符
最常见的几个指令:
$@ 所有的目标文件 $^ 所有的依赖文件 $< 所有依赖文件的第一个文件
希望对你们有帮助,制作不易,转载请标明出处: