diff --git a/source/implicit_rules.rst b/source/implicit_rules.rst index 16f7612..e229658 100644 --- a/source/implicit_rules.rst +++ b/source/implicit_rules.rst @@ -116,7 +116,7 @@ make会在自己的“隐含规则”库中寻找可以用的规则,如果找 #. 汇编和汇编预处理的隐含规则。 - ``.o`` 的目标的依赖目标会自动推导为 ``.s`` ,默认使用编译品 ``as`` ,并且其生成 + ``.o`` 的目标的依赖目标会自动推导为 ``.s`` ,默认使用编译器 ``as`` ,并且其生成 命令是: ``$ (AS) $(ASFLAGS)`` 。 ``.s`` 的目标的依赖目标会自动推导为 ``.S`` , 默认使用C预编译器 ``cpp`` ,并且其生成命令是: ``$(AS) $(ASFLAGS)`` 。 @@ -331,7 +331,7 @@ make就会规则下的命令,所以,在模式规则中,目标可能会是 - ``$<`` : 依赖目标中的第一个目标名字。如果依赖目标是以模式(即 ``%`` )定义的,那么 ``$<`` 将是符合模式的一系列的文件集。注意,其是一个一个取出来的。 - ``$?`` : 所有比目标新的依赖目标的集合。以空格分隔。 -- ``$^`` : 所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除 +- ``$^`` : 所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那么这个变量会去除 重复的依赖目标,只保留一份。 - ``$+`` : 这个变量很像 ``$^`` ,也是所有依赖目标的集合。只是它不去除重复的依赖目标。 - ``$*`` : 这个变量表示目标模式中 ``%`` 及其之前的部分。如果目标是 ``dir/a.foo.b`` ,并且 diff --git a/source/rules.rst b/source/rules.rst index 2780ff5..4e595db 100644 --- a/source/rules.rst +++ b/source/rules.rst @@ -315,14 +315,14 @@ Makefile的规则中的目标可以不止一个,其支持多目标,有可能 targets定义了一系列的目标文件,可以有通配符。是目标的一个集合。 -target-parrtern是指明了targets的模式,也就是的目标集模式。 +target-pattern是指明了targets的模式,也就是的目标集模式。 -prereq-parrterns是目标的依赖模式,它对target-parrtern形成的模式再进行一次依赖目标的定义。 +prereq-patterns是目标的依赖模式,它对target-pattern形成的模式再进行一次依赖目标的定义。 这样描述这三个东西,可能还是没有说清楚,还是举个例子来说明一下吧。如果我们 -的定义成 ``%.o`` ,意思是我们的;集合中都是以 ``.o`` 结尾的,而 -如果我们的定义成 ``%.c`` ,意思是对所形成的目标集进 -行二次定义,其计算方法是,取模式中的 ``%`` (也就是去掉了 ``.o`` 这个结 +的定义成 ``%.o`` ,意思是我们的;集合中都是以 ``.o`` 结尾的,而 +如果我们的定义成 ``%.c`` ,意思是对所形成的目标集进 +行二次定义,其计算方法是,取模式中的 ``%`` (也就是去掉了 ``.o`` 这个结 尾),并为其加上 ``.c`` 这个结尾,形成的新集合。 所以,我们的“目标模式”或是“依赖模式”中都应该有 ``%`` 这个字符,如果你的文件名中有 ``%`` 那么