2

makefile で複数のターゲットをビルドする場合、「make」と言うと、デフォルトですべてのターゲットが作成されます。すべてのデフォルトを別のものに変更することは可能ですか?

all : target1 target2 

ここで、コマンド 'make' を実行すると、target1 のみをビルドする必要があります。

4

3 に答える 3

4

カールが言及したように、行から target2 を削除するだけです。

ただし、それでもすべてを target1 と target2 にしたい場合は、いくつかのオプションがあります...

どの make を使用しているかについては言及していませんが、これらの詳細はバージョンによって異なりますが、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 に答える