生成文件静态规则语法说明



这是静态规则的makefile代码示例的片段:

objects = foo.o bar.o
all: $(objects)
$(objects): %.o: %.c
        $(CC) -c $(CFLAGS) $< -o $@

这意味着什么,例如:

target : %.o : %.c
这是否意味着目标:%.o和%.o:%.c解释目标的所有依赖项将由%.o规则生成,配方将应用于该规则,%.

o的所有依赖项将由%.c规则生成,并且配方将应用?

请有人澄清一下:

1.makefile中的静态规则解释语法是什么?

2.配方是否同时适用于%.o和%.c规则?

3.Is 它连接了目标:$(all).o 和 $(all).o : $(all).c,其中 all 包含所有文件名而没有任何扩展名?

您的代码段:

objects = foo.o bar.o
all: $(objects)
$(objects): %.o: %.c
        $(CC) -c $(CFLAGS) $< -o $@
展开

为(展开变量后):

all: foo.o bar.o
foo.o bar.o: %.o: %.c
        $(CC) -c $(CFLAGS) $< -o $@

这是写作的简写:

foo.o: foo.c
        $(CC) -c $(CFLAGS) $< -o $@
bar.o: bar.c
        $(CC) -c $(CFLAGS) $< -o $@

因此,简而言之,对于目标列表中的每个目标,应用模式并为结果创建静态规则。

相关内容

  • 没有找到相关文章

最新更新