gpt4 book ai didi

build-process - 什么是 'make target' ?

转载 作者:行者123 更新时间:2023-12-03 12:09:06 25 4
gpt4 key购买 nike

为什么我需要做一个 make target在能够构建我的源代码之前?

更具体地说,什么是make target确切地?

最佳答案

Makefile 看起来像这样:

all: mybinary

mybinary: files.o it.o depends.o on.o
[tab]$(CC) $(CFLAGS) files.o it.o depends.o on.o -o mybinary

files.o: files.c files.h
[tab]$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@

...

这意味着,当您键入 make all 时(简写就是输入 make ),它将确保 mybinary 目标或文件是最新的。为此,它需要确保 mybinary 比所有 files.o it.o depends.o 和 on.o 都新。如果没有,那么它使用下一行指定的 shell 命令来构建 mybinary。但在此之前,它首先确保 files.o 等是最新的。这意味着它们必须比 files.c 和 files.h 更新。如果没有,那么它使用下一行指定的 shell 命令来构建 files.o。一旦所有 *.o 文件都是最新的,它就可以构建 mybinary。一旦构建了 mybinary,就满足了 all 目标。

目标通常只是文件。块的格式为:
target: list of dependency files
[tab]shell commands to build target if it's older than any of its dependencies
[tab]more shell commands
[tab]still more

也可以使用通配符指定目标,例如 %.c意味着你在 shell 中调用的内容 *.c .

有些目标是“虚假”目标,这意味着它们不对应于任何真实文件。 “全部”目标就是这种类型。 “干净”目标( make clean )也是如此。等等。您并不真正需要或不想构建一个名为“all”或“c​​lean”的文件。有多种方法可以指定目标是假的。

出现在 Makefile 中的第一个目标是您只需键入 make 就会被调用的目标。 .一种约定是将此目标命名为“all”。那么 make将与 make all 相同.

关于build-process - 什么是 'make target' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270643/

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