6

ソースファイルをリストするメイクファイルがあります:(関連するものに短縮)

SRCFOLDER=src/
SOURCES= main.cpp
OBJECTS=$(SOURCES:.cpp=.o)

文字列を連結したいのですが、それぞれがSOURCES. 上記のように、 に対して実行しますが、次のOBJECTSように実行したい: (疑似コード)

foreach(src in SOURCES)
  src = concate(SRCFOLDER, src)

SOURCESだった場合main.cpp window.cpp、結果は になりますsrc/main.cpp src/window.cpp

私はこれを試しました:

SOURCES=$(SOURCES:*=$(SRCFOLDER)/*)

しかし、私はこのエラーが発生します:

makefile:12: *** Recursive variable `SOURCES' references itself (eventually). Stop.
4

1 に答える 1

11
SRCFOLDER := src
SOURCES := main.cpp window.cpp
SOURCES := $(addprefix $(SRCFOLDER)/, $(SOURCES))
于 2012-07-17T02:46:37.483 に答える