====规则说明====
target: prerequisites
command
target:文件或是某种动作
prerequisites:文件或是target
Makefile由如下几个部分构成:
明确的规则
隐式的规则
变量定义
注释信息(#开头)
====变量说明====
变量的定义方式
var=value 表示递归展开内容
var := value 简单展开
$(var:a=b) or ${var:a=b} 子串替换
z=$($(x)) 将$(x)的值作为变量名称,然后取该变量的值
可以为目标设置变量
target … : variable-assignment
常用隐式规则使用的变量
名称 变量值
AR ar
AS as
CC cc
CXX g++
CO co
CPP ${CC} -E
LEX lex
ARFLAGS rv
ASFLAGS ""(as编译器选项)
CFLAGS ""(cc/gcc的编译选项)
LDFLAGS ""(链接器选项)
CXXFLAGS ""(g++的编译选项)
CPPFLAGS ""(${CC}的编译选项)
====自动变量====
[email protected] 工作目标的文件名
$% 档案文件成员
$< 第一个必要条件的文件名
$? 时间戳在工作文件目标之后的所以必要条件
$^ 所有必要条件的文件名(不重复)
$+ 所有必要条件的文件名(重复)
$* 工作目标的主文件名
时间: 2024-10-13 14:43:26