Make与Makefile要点
make命令运行时,须要一个 Makefile文件,以告诉make命令须要怎么样的去编译和链接程序。系统会自动生成一个Makefile文件。
每层目录都会有一个Makefile文件或者makefile文件但只能有其中一个。
Makefile内容的核心是一系列的规则,这些规则告诉make程序要做的事以及做这件事所依赖的条件。
基本格式:
target: dependency
(Tab字符)command
注释:
target(目标):通常是要产生的文件的名称
dependency(依赖):指用来输入从而产生目标的文件
command(命令):是make执行的动作,一个规则可以有多条命令,每个命令占一行。命令行的第一个字符是Tab。(命令每一行前面必须缩进)。
例:
在终端输入:
[root@localhost text26]# vim Makefile
在vim里写
Target=saberlily target和object都是一个变量给它们赋值
Object=saberlily.o print.o 依赖的对象
$(Target):$(Object) saberlily依赖2个.o文件
gcc $(Object) -o $(Target) 生成一个可执行文件
.PHONY:clean 删除saberlily.o 和saberlily.c防止再次make的时候出现“saberlily是最新的等字样”
clean:
rm *.o saberlily
在终端输入:
[root@localhost text26]# make
cc -c -o saberlily.o saberlily.c (生成可执行文件的过程)
cc -c -o print.o print.c
gcc saberlily.o print.o -o saberlily
[root@localhost text26]# ls
Makefile print.c print.o saberlily saberlily.c saberlily.o
[root@localhost text26]# make
make: “saberlily”是最新的。
[root@localhost text26]# make clean
rm *.o saberlily
[root@localhost text26]# ls (成功删除.o文件和可执行文件)
Makefile print.c saberlily.c