Makefileのターゲット以降のタグの変更

Makefileのターゲット以降のタグの変更

次のmakefile行を見ました。

$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread -lrt -Wl,-uevaluate

私が理解したところによれば、$(LAST_TARGET_DIR)/%一致するターゲットがあり、ターゲットの後に対応する従属項目が来なければなりません。ここでリンクフラグが変更されるのはなぜですか?

ベストアンサー1

特定の変数に対して異なる値を使用できるようにするGNU makeの機能です。ターゲットまたは模様

例えば、

LFLAGS = -lm
$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread

%.exe: %.o common.o
    $(CC) -o $@ common.o $(@:%.exe=%.o) $(LFLAGS)

すべての.exeファイルはに関連付けられますが、-lmディレクトリ内のファイル$(LAST_TARGET_DIR)はに関連付けられます-lm -lpthreads

おすすめ記事