0

を参照する Makefile があるmyprog.c場合、ルールを指定しないとmyprog.c、make は自動的に のような処理を行います$(CC) myprog.c

デフォルトの動作を再指定して、新しいデフォルトの動作を追加することはできますか (例: で終わるファイルmyextension)。

4

4 に答える 4

1

Make には、事前に定義された暗黙のルールがいくつかあります。オプションで適用されているルールを確認できmake -dます。デフォルトのルールは

%: %.o    # Link object file
      $(CC) $(LDFLAGS) n.o $(LOADLIBES) $(LDLIBS)
%.o: %.c  # Compile C source code
      $(CC) $(CPPFLAGS) $(CFLAGS) -c

暗黙のルールを再定義できます。これをチェックして実行します。

于 2013-04-08T07:08:06.127 に答える
1

COMPILE.c暗黙のルールのレシピは、LINK.c、 などの変数を通じて内部的に定義されます。

GNU Make Manual のCatalog of Implicit Rulesの章から:

makeは、 .xソース ファイルをコンパイルする規則で変数 を使用するという規則に従いますCOMPILE.x。同様に、.xLINK.xファイルから実行可能ファイルを生成するルールでは、 ;が使用されます。また、 .x​​ ファイルを前処理するルールはPREPROCESS.x.

上記のリンクには、いくつかの定義済みの暗黙的なレシピも含まれています。

于 2013-04-08T12:26:30.907 に答える
0

GNU make には組み込みの暗黙の規則がたくさんありますmyprog.c。好きなように独自の暗黙のルールを追加できます。たとえば、次の暗黙の規則は、.outファイルから.myextensionファイルを生成する方法を GNU make に伝えます。

%.out: %.myextension
        @echo Building $@ from $<
        @# do whatever you need here...

それを Makefile にドロップすると、出力ごとに明示的なルールを指定しなくても、一致する などがある限り、 、gmake foo.outまたは などを実行できます。gmake bar.outfoo.myextension

于 2013-04-09T18:20:35.030 に答える