没有依赖关系表达式的 Makefile 规则

发布于 2024-08-29 19:21:41 字数 143 浏览 1 评论 0原文

我在维基百科上阅读了关于“Make”的德语文章,发现了以下两行:

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

为什么省略了依赖表达式以及为什么目标使用双文件扩展名?

I read the german article about "Make" on Wikipedia and found the following 2 lines:

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

Why is the dependency expression left out and why does the target use a double file extension?

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

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

发布评论

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

评论(2

海未深 2024-09-05 19:21:42

这实际上是定义了一个后缀规则...它定义了如何从以“.c”结尾的相应文件构建以“.o”结尾的文件,这告诉 make 推断“filename.c”(如果存在)是一个对于任何此类文件名,“filename.o”的依赖关系,并且“filename.o”文件可以使用所提供的规则从其 *.c 依赖关系构建。

不过,我应该指出,这一行是完全没有必要的,事实上,人们不应该将其放入 Makefile 中,因为 Make 已经能够推断出这种类型的依赖关系。您可能对我的Makefile 教程感兴趣 随着它的详细展开,Make 能够推断出所有的事情。

This is actually defining a suffix rule... it is defining how to build a file ending in ".o" from a corresponding file ending in ".c", which tells make to infer that "filename.c", if it exists, is a dependency for "filename.o" for any such filename, and that the "filename.o" file may be built from its *.c dependency with the provided rule.

I should point out, though, that this line is completely unnecessary and is, in fact, not something one should put in a Makefile, since Make is already capable of deducing that type of dependency. You may be interested in my Makefile tutorial as it goes on in quite some detail all the things Make is capable of inferring.

悲凉≈ 2024-09-05 19:21:42

这就是所谓的“后缀规则”,用于从具有第一个后缀的源创建具有第二个后缀的目标,只要已知后缀即可。请参阅 make 手册中的后缀规则< /a> 更详细的描述

That is what is called a 'Suffix Rule', and is used to make a target with the second suffix from a source with the first suffix, as long as the suffixes are known to make. See Suffix Rules in the make manual for a more detailed description

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