了解制定规则

问题描述 投票:0回答:1

这是我在网上找到的一个例子

all: test

test: test.c
    gcc test.c -o test

我知道test.c是先决条件,但由于test.c没有定义路径,这是否意味着test.c应该在当前目录中?

makefile gnu-make
1个回答
1
投票

你的问题的答案,是的,已经回答@Rafael。

test.c应该在当前目录中,否则最终会出错。


我正在添加更多的教学信息来理解基本的Makefile。

这是简单的makefile外观,Introduction makefile

target … : prerequisites …
        recipe
        …
        …
  1. Target是程序生成的文件的名称,它也可以是诸如clean之类的操作的名称。
  2. 先决条件是用作创建目标的输入的文件。目标通常取决于几个文件。
  3. 配方是make执行的行动。一个配方可能有多个命令,可以在同一行上,也可以在各自的行上。请注意:您需要在每个食谱行的开头添加制表符

更高级的东西,Writing recipes with directory search.

当通过目录搜索在另一个目录中找到先决条件时,这不能改变规则的配方;他们将按照书面执行。因此,您必须小心编写配方,以便在make找到它的目录中查找先决条件。

$ ^:Qazxswpoi:

Automatic variables
© www.soinside.com 2019 - 2024. All rights reserved.