2

在 makefile 中构建多个目标的情况下,当我说“make”时,默认情况下它会生成所有目标。是否可以将 all 的默认值更改为其他值?

all : target1 target2 

现在,当我发出命令 'make' 时,我只想构建 target1。

4

3 回答 3

4

就像卡尔提到的那样,您可以从行中删除 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
于 2013-02-07T16:18:59.060 回答
0

当然,只需target2从该行中删除即可。

于 2013-02-07T16:12:09.273 回答
0

只需添加以下行:

target1:

在规则定义之前all。该名称all并不特殊:由于是列出的第一条规则,它成为默认值。通过target1:在该行之前添加,target1成为默认值。请注意,允许规则的多个定义不是标准行为(这基本上是一个假规则,其行为稍后在 Makefile 中定义),但这将适用于 gnu make。如果它不起作用,只需将 的实际定义target1移到all.

于 2013-02-07T16:57:07.513 回答