make在执行时,需要一个命名为Makefile的文件,Makefile文件描述整个功能的编译、链接规则
编译makefile文件:vi makefile
eg:
hello:main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
main.o:main.c
gcc -c main.c
func1.o:func1.c
gcc -c func1.c
func2.o:func2.c
gcc -c func2.c
.PHONY:clean(声明)
clean:
rm -f hello main.o func1.o func2.o
1、规则:用于说明如何生成一个或多个目标文件
targets:prerequisites
command(需要以TAB键开始)
目标 依赖 命令 eg:
main.o:main.c
gcc -c main.c
伪目标:没有任何依赖只执行动作的目标(phony targets)
.phony将clean目标声明为伪目标
make命令默认在当前目录下寻找makefile(Makefile)的工程文件,当名字不为2者之一时,可以使用make -f 文件名指定默认情况下 命令:make 运行makefile文件
规则可以这样写
1、
obj=main.o func1.o (obj是个变量)
hello:$(obj)
gcc $(obj) -o hello
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件
2、
hello:main.o func1.o
gcc $^ -o $@
@ :取消回显(命令行不显示编译完成信息)
和脚本一样,makefile用#注释