“make” 和 “make” 和有什么不一样?和“创造一切”?

发布于 2024-11-27 06:08:38 字数 463 浏览 0 评论 0原文

我有一个具有以下结构的 Makefile(工作示例)。

.PHONY: image flashcard put-files

put-files:
    @echo "=== put-files"

image:
    @echo "=== image"

flashcard:
    @echo "=== flashcard"

all: put-files image flashcard
    @echo "Done"

我希望一个简单的 make 能够构建所有三个目标,但事实并非如此:

% make
=== put-files

但是如果我显式指定目标,也会构建依赖项:

% make all
=== put-files
=== image
=== flashcard
Done

我做错了什么?

I have a Makefile with the following structure (working example).

.PHONY: image flashcard put-files

put-files:
    @echo "=== put-files"

image:
    @echo "=== image"

flashcard:
    @echo "=== flashcard"

all: put-files image flashcard
    @echo "Done"

I expect that a simple make would build all three targets, but this is not so:

% make
=== put-files

But if I explicitly specify the target, the dependencies are built as well:

% make all
=== put-files
=== image
=== flashcard
Done

What am I doing wrong?

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

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

发布评论

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

评论(1

真心难拥有 2024-12-04 06:08:38

一个简单的 make 将构建列表中的第一个目标,即 put-files

make all 将构建目标 all。如果您希望all成为默认值,请将其移至列表顶部。

要了解 .PHONY 的作用,请参阅 http://www.gnu.org/s/hello/manual/make/Phony-Targets.html

A simple make will build the first target in the list, which is put-files.

make all will build the target all. If you want all to be the default, then move it to the top of the list.

To understand what the .PHONY does, see http://www.gnu.org/s/hello/manual/make/Phony-Targets.html

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