$< 做什么? 和 $@ 代表 Makefile 吗?

发布于 2024-07-21 22:24:30 字数 80 浏览 3 评论 0 原文

谁能解释一下 Makefile$<$@ 的含义吗?

Can anybody please explain the meaning of $< and $@ in a Makefile?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

握住你手 2024-07-28 22:24:30

$< 计算为 make 规则中的第一个“先决条件”,$@ 计算为 make 规则中的“目标”。

下面是一个示例:

file.o : file.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) 
lt; -o $@

在这种情况下,$< 将替换为 file.c$@ 将替换为 file.o

这些在像这样的通用规则中更有用:

%.o : %.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) 
lt; -o $@

请参阅本手册 了解更多信息。

$< evaluates to the first "prerequisite" in the make rule, and $@ evaluates to the "target" in the make rule.

Here's an example:

file.o : file.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) 
lt; -o $@

In this case, $< will be replaced with file.c and $@ will be file.o.

These are more useful in generic rules like this:

%.o : %.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) 
lt; -o $@

See this manual for more info.

思念绕指尖 2024-07-28 22:24:30

$@ 是当前规则的目标。
$< 是当前规则的第一个先决条件(“源”)的名称。

例如:

.c.o:
        $(CC) -c $(CFLAGS) -o $@ 
lt;

这将扩展为类似以下的命令:

gcc -c -Wall -o foo.o foo.c

另请参阅 GNU make 手册第 § 10.5.3,“自动变量”

$@ is the target of the current rule.
$< is the name of the first prerequisite ("source") of the current rule.

So for example:

.c.o:
        $(CC) -c $(CFLAGS) -o $@ 
lt;

This will expand to a command something like:

gcc -c -Wall -o foo.o foo.c

See also the GNU make manual § 10.5.3, "Automatic Variables".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文