0

私は bash シェル スクリプトを初めて使用するので、プログラムのコンパイルに使用している Makefile を理解できませんでした。

以下のソースコードの「$@」と「$<」の意味を教えてください。前もって感謝します。

CC=g++
CFLAGS=-c -Wall -I /usr/local/include/boost-1_37/ -g
LDFLAGS=-L /usr/local/lib
SOURCES=cluster.cpp test.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=k-means

all: $(SOURCES) $(EXECUTABLE)


$(EXECUTABLE): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) -o **$@**

.cpp.o:
    $(CC) $(CFLAGS) **$<** -o **$@**

clean:
    rm -fr *.o *~ $(EXECUTABLE)
4

2 に答える 2

2

GNUmakeマニュアルの自動変数を参照してください。

$@

ルールのターゲットのファイル名。ターゲットがアーカイブメンバーの場合、$@はアーカイブファイルの名前です。複数のターゲットを持つパターンルール(パターンルールの概要を参照)では$@、ルールのレシピを実行させたターゲットの名前です。

$<

最初の前提条件の名前。ターゲットが暗黙のルールからレシピを取得した場合、これが暗黙のルールによって追加される最初の前提条件になります(暗黙のルールを参照)。

于 2013-01-21T16:01:08.953 に答える
0

この種のことについて読むのに最適な本は次のとおりです

于 2013-01-21T16:21:43.160 に答える