make在执行时,需要一个命名为makefile的文件.make废了文件描述了整个工程编译,链接的规则.
其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件
如何最后产生我们想要得可执行文件.
这就是一个规则
targets:prerequisites
command
main.o:main.c
gcc -c main.c
mian.o 是目标,也就是最后产生的东西
main.c 是依赖,也就是源文件
gcc -c main.c 是命令,也就是编译,链接的规则
**命令需要以[TAB]开始**
gcc -c main.c 生成.o文件
gcc -c mian.c -o 生成可执行文件
.PHONY:clean ".PHONY"将"clean"声明成伪一个没有依赖的目标,只有目标没有依赖,即伪目标
如果我们有多个依赖的时候我们可以在makefile中定义变量
obj=main.o func1.o func2.o func3.o
hello:$(obj)
gcc $(obj) -o hello
在添加或者修改依赖的时候就可以直接改变量赋值的地方修改就好.
$^:代表所有以来文件
$@:代表目标
$<:代表第一个依赖文件
hello:main.o func1.o func2.o
gcc main.o func1.0 func2.o -o hello
改写
hello:main.o func1.o func2.o
gcc $^ -o $@
如何使用注释
#开始这一行就是注释
@的使用
#有@不显示编译命令信息(取消回显)
main.o:main.c
@gcc -c main.c
#无@显示编译命令信息(回显)
main.o:main.c
gcc -c main.c