修正前两章书写失误
This commit is contained in:
@@ -228,7 +228,7 @@ vapth使用方法中的<pattern>需要包含 ``%`` 字符。 ``%`` 的意思是
|
||||
多目标
|
||||
------
|
||||
|
||||
Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令不是同一个,这可能会可我们带来麻烦,不过好在我们可以使用一个自动化变量 ``$@`` (关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。
|
||||
Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令不是同一个,这可能会给我们带来麻烦,不过好在我们可以使用一个自动化变量 ``$@`` (关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。
|
||||
|
||||
.. code-block:: makefile
|
||||
|
||||
@@ -287,7 +287,7 @@ prereq-parrterns是目标的依赖模式,它对target-parrtern形成的模式
|
||||
bar.o : bar.c
|
||||
$(CC) -c $(CFLAGS) bar.c -o bar.o
|
||||
|
||||
试想,如果我们的 ``%.o`` 有几百个,那么我们只要用这种很简单的“静态模式规则”就可以写完一堆规则,实在是太有效率了。“静态模式规则”的用法很灵活,如果用得好,那会一个很强大的功能。再看一个例子:
|
||||
试想,如果我们的 ``%.o`` 有几百个,那么我们只要用这种很简单的“静态模式规则”就可以写完一堆规则,实在是太有效率了。“静态模式规则”的用法很灵活,如果用得好,那会是一个很强大的功能。再看一个例子:
|
||||
|
||||
.. code-block:: makefile
|
||||
|
||||
@@ -374,4 +374,4 @@ gcc -MM main.c的输出则是::
|
||||
|
||||
include $(sources:.c=.d)
|
||||
|
||||
上述语句中的 ``$(sources:.c=.d)`` 中的 ``.c=.d`` 的意思是做一个替换,把变量 ``$(sources)`` 所有 ``.c`` 的字串都替换成 ``.d`` ,关于这个“替换”的内容,在后面我会有更为详细的讲述。当然,你得注意次序,因为include是按次来载入文件,最先载入的 ``.d`` 文件中的目标会成为默认目标。
|
||||
上述语句中的 ``$(sources:.c=.d)`` 中的 ``.c=.d`` 的意思是做一个替换,把变量 ``$(sources)`` 所有 ``.c`` 的字串都替换成 ``.d`` ,关于这个“替换”的内容,在后面我会有更为详细的讲述。当然,你得注意次序,因为include是按次序来载入文件,最先载入的 ``.d`` 文件中的目标会成为默认目标。
|
||||
|
||||
Reference in New Issue
Block a user