gpt4 book ai didi

gnu-make - `%` 字符在 GNU Make 中有什么作用?

转载 作者:行者123 更新时间:2023-12-05 05:29:02 26 4
gpt4 key购买 nike

我正在使用 GNU make。在我得到的 Makefile 中,我看到了符号“%”。例如在%.c, %.asm, %.o etc..(它是一个通配符,将返回该扩展名的所有文件)

% 是什么意思?

下面的规则会做什么:

%.o:  %.c
gcc $< -o:$@

谢谢你,

-广告

最佳答案

规则:

%.o:  %.c
gcc $< -o:$@

将使用下面的命令为每个 c 文件构建一个目标文件。所以是的,% 就像一个通配符,但我倾向于将其视为“对每个”,因为这是规则的结果。 $<表示依赖文件和 $@表示要构建的对象。如果您这样做:

fred.o: fred.c
gcc $< -o:$@

在这里$@=fred.o$<=fred.c同样

fred.o: fred.c george.c
gcc $< -o:$@

给出 $@=fred.o$<=fred.c george.c .

编辑:从我将对此展开的命令。

%将匹配与其周围匹配的所有内容。所以%.c表示当前目录下的所有.c文件。 asm/%.asm表示子目录 asm 中带有 .asm 的所有文件延期。它就像一个 token ,因此无论何时您下次使用 % 都会使用找到的任何内容。即在标签中。

所以,规则:

objs/asm/%.o: arch/%.S
nasm -felf64 $< -o $@

给定arch/hello.S , arch/bye.S , arch/somethingelse.S将创建 obj/asm/hello.o , obj/asm/bye.S , obj/asm/somethingelse.o .

关于gnu-make - `%` 字符在 GNU Make 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com