Make工程管理器是完全根据Makefile里的编译规则命令执行工作。Makefile文件由下面三种基本内容组成。
1、需要生成的目标文件(Target file)。
2、生成目标文件所需要的依赖文件(Object file)。
3、生成目标文件的编译规则的命令行(command)。
Target file:Object file
(Tab)command
注:在command前一定要加个Tab键。
列如:
1、vim Makefile (先建立个Makefile的文件)
2、在Makefile中可以使用$来引用变量。
object=1.o 2.o main.o
Target=main
$(Target) : $(Object)
(Tab) gcc $(Target) -o $(Object)
以上是引用 $的最基本的Makefile的使用方式。
在linux系统中,直接打出make指令,就可以读取Makefile文件。
3、我们还可以在Makefile中加上clean,也就是rm -rf删除命令,采用make clean指令可以执行删除命令,为了避免存在clean文件所产生的冲突。我们设置clean伪指令。
列如:
.PHONY : clean
clean:
(Tab) rm *.o main
最后在linux中直接敲出make clean 可以直接读取Makefile中的clean所代表的指令。
注:在Makefile文件中还存在一些隐藏规则。列如:还是以上面已经建立的Makefile文件为列,Makefile存在的当前路径中所依赖的文件没有.o结尾的文件时,系统会自动寻找以.c结尾的依赖文件,并且直接将其编译成以.o结尾的文件,再将以.o结尾的文件带入执行。
举例隐藏规则的代码:
f1.o(目标文件):f1.c(依赖文件)
(Tab)gcc -c f1.c -o f1.o(编译规则)
f2.o : f2.c
(Tab) gcc -c f2.c -o f2.o
main.o : main.c
(Tab) gcc -c main.c -o main.o