.PHONY:clean
main:hello.o
gcc -o main hello.c
hello.o:hello.c
gcc -c hello.c
clean:
rm -f hello.o main
---------------------------------------
makefile伪目标
只包含目标,没有任何依赖的目标称为伪目标。上例中clean即为伪目标
使用 .PHONY 将 clean 声明为伪目标
---------------------------------------
Makefile构成规则
目标 依赖 命令
hello.o:hello.c
gcc -c hello.c
命令行必须使用 table键开头
--------------------------------------
最终目标:Makefile文件第一个目标
make + 目标名字
make hello.o
make clean
make 后面不跟内容,执行生成最终目标
-------------------------------------------
Makefile规则---变量
obj=func1.o func2.o ( = 的两侧不能有空格)
app1:app1.o $(obj)
gcc app1.o $(obj) -o app1
-----------------------------------------
存在于系统之中定义好了的变量
$^ 代表所有的依赖文件
$@ 代表目标文件
$< 代表第一个依赖文件
------------------------------
去回显功能
只需要在命令行前面加上@即可
@gcc -c hello.c
----------------------------
指定Makefile文件
执行make命令时,默认会找Makefile文件或者makefile文件
可以使用 -f选项指定 make文件
make -f mk
make clean -f mk
---------------------------------
通用规则:
目标名字和依赖文件名字相同,只是后缀不同,且依赖文件只有一个
%.o:%.S
arm-linux-gcc -o $@ $^
(通配符的意思)