make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。
Makefile里有什么?
Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。
1. 显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。
2. 隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。
3. 变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。
4. 文件指示。其包括了三个部分,一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。有关这一部分的内容,我会在后续的部分中讲述。
5. 注释。Makefile中只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,这个就像C/C++中的“//”一样。如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“\#”。
最后,还值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。
技能点:
-命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事
.PHONY: 伪目标,需要make后跟指令名称才能执行
变量 = (替换) TAR= test OBJ=circle.o cube.o main.o
+= (追加) TAR += test
:=(恒等于) CC := gcc
使用变量时 $(变量名) 替换
$(TAR) : $(OBJ)
$(CC) $(OBJ) -o $(TAR)
隐含规则 %.c %.o 任意的.c或者.o *.c *.o 所有的.c .o
%.o : % .c
$ (CC) -o %.c -o %.o
通配符 $^ 所有的目标文件 $@所有的依赖文件 $< 所有的依赖文件的第一个文件
$(TAR):$(OBJ)
$(CC) $^ -o $@
%.o : %.c
$(CC) -c $^ -o $@
标签:文件,%.,进阶,TAR,CC,MakeFile,make,Makefile,编写 From: https://www.cnblogs.com/ucas123/p/16735541.html