(三)make 和Makefile
make命令运行时,需要一个Makefile文件,以告诉make命令需要怎么样的去编译和链接程序。
make运行时在当前目录下寻找Makefile,优先匹配‘M’。
一个Makefile文件包含五个方面的内容:
具体规则 隐含规则 定义变量 指令 注释(#)
1.具体规则的基本格式:
target : dependency
(Tab)command
target(目标):通常是要产生的文件的名称
dependency(依赖):指用来输入从而产生目标的文件
command(命令): 是make执行的动作,一个规则可以有多条命令,每条命令占一行。命令行的第一个字符是Tab。
例:CC = gcc
Target = hello
Object = hello.o
$(Target) : $(Object)
(tab)gcc $ (Object) -o $(Target)
.PHONY : clean
clean :
(tab)rm *.o hello
2.隐含规则
隐含规则能够告诉make使用传统的标准方法完成任务。使用隐含规则就无须指定命令,而make能按照文件名的后缀的变化,决定所采用的规则。
3.变量
变量是在Makefile中定义的名字,用来代替一个文本字符串,该文本字符串被称为该变量的值。Makefile中常见的预定义变量有:
CC C编译器的名称 cc(gcc)
cpp C预编译器的名称 $(cc)- E
cxx C++编译器的名称 g++
RM 删除程序的名称 rm -rf