Answers:
根据Makefile的理解,构建包含许多目标。例如,要构建一个项目,您可能需要
如果使用makefile来实现此工作流程,则可以分别创建每个目标。例如,如果您写了
make file1.o
它只会在必要时构建该文件。
的名称all
不固定。这只是一个常规名称; all
target表示,如果您调用它,make将构建完成完整构建所需的所有内容。通常这是一个虚拟目标,它不创建任何文件,而仅依赖于其他文件。对于上面的示例,构建所有必需文件就是构建可执行文件,而其他文件则作为依赖文件被引入。因此,在makefile中,它看起来像这样:
all: executable1 executable2
all
target通常是makefile中的第一个目标,因为如果您仅make
在命令行中编写而不指定目标,则它将构建第一个目标。而且您希望它是all
。
all
通常也是.PHONY
目标。在这里了解更多。
目标“全部”是虚拟目标的示例-磁盘上没有任何东西称为“全部”。这意味着当您执行“全部创建”时,make始终认为它需要构建它,因此执行该目标的所有命令。这些命令通常是构建makefile知道的所有最终产品的命令,但是它可以执行任何操作。
虚拟目标的其他示例是“干净”和“安装”,它们以相同的方式工作。
如果您还没有阅读它,则应该阅读GNU Make Manual,这也是一本很好的教程。