这是我在网上找到的一个例子
all: test
test: test.c
gcc test.c -o test
我理解test.c
是先决条件,但由于test.c
没有定义路径,这是否意味着test.c
应该在当前目录中?< / p>
答案 0 :(得分:1)
你的问题的答案,是的,已经回答@Rafael。
test.c应该在当前目录中,否则最终会出错。
我正在添加更多教学信息以了解基本的Makefile。
这是简单的makefile外观,Introduction makefile。
target … : prerequisites …
recipe
…
…
目标是程序生成的文件的名称,它也可以是清除等操作的名称。
先决条件是用作创建目标的输入的文件。目标通常取决于几个文件。
配方是make
执行的操作。一个配方可能有多个命令,可以在同一行上,也可以在各自的行上。请注意:您需要在每个食谱行的开头添加制表符
更高级的内容,Writing recipes with directory search.
当通过目录搜索在另一个目录中找到先决条件时,这不能改变规则的配方;他们将按照书面执行。因此,您必须小心编写配方,以便在make找到它的目录中查找先决条件。
$ ^:Automatic variables:
foo.o : foo.c
cc -c $(CFLAGS) $^ -o $@