1

次の GNU Makefile コードが与えられます。

ENDING = '\.cpp'
OBJ = $(SOURCES:$(ENDING)=.o) # (does not work)

これは何も置き換えませんが、

OBJ = $(SOURCES:.cpp=.o)

します (cpp ファイルの場合)。patsubst固有のエンディングを伝える方法はありますか? または、少なくとも以下のように、あらゆる種類のエンディングを置き換えるには?

OBJ = $(SOURCES:.*=.o) # (does not work)
4

1 に答える 1

4

これは機能します:

ENDING = .cpp
OBJ = $(SOURCES:$(ENDING)=.o)

そして、これはすべてのエンディングを置き換えます:

OBJ = $(addsuffix .o,$(basename $(SOURCES)))
于 2012-09-15T07:53:16.103 に答える