在 makefile 中构建多个目标的情况下,当我说“make”时,默认情况下它会生成所有目标。是否可以将 all 的默认值更改为其他值?
all : target1 target2
现在,当我发出命令 'make' 时,我只想构建 target1。
就像卡尔提到的那样,您可以从行中删除 target2 。
但是,如果您仍然希望所有人都制作 target1 和 target2 ,则有一些选择...
你没有说你使用的是哪个品牌,这些细节取决于版本,但我将详细说明它是如何在 GNU make 上工作的。
在 GNU make 中,第一个目标成为默认目标。所以如果你有一个像这样的 Makefile:
next:
@echo "next"
all:
@echo "All"
它将打印:
$ make
next
您还可以更改默认目标:
.DEFAULT_GOAL=other
next:
@echo "next"
all:
@echo "All"
other:
@echo "other"
它将显示:
$ make
other
这是与:
$ make --version
GNU Make 3.81
当然,只需target2
从该行中删除即可。
只需添加以下行:
target1:
在规则定义之前all
。该名称all
并不特殊:由于是列出的第一条规则,它成为默认值。通过target1:
在该行之前添加,target1
成为默认值。请注意,允许规则的多个定义不是标准行为(这基本上是一个假规则,其行为稍后在 Makefile 中定义),但这将适用于 gnu make。如果它不起作用,只需将 的实际定义target1
移到all
.