附加到列表的开头

Col*_*son 6 makefile gnu-make

我有一个列出源文件的makefile :(缩写为相关)

SRCFOLDER=src/
SOURCES= main.cpp
OBJECTS=$(SOURCES:.cpp=.o)
Run Code Online (Sandbox Code Playgroud)

我想把这些字符串连在一起,但对于每一个字符串SOURCES.正如你在上面看到的,我这样做OBJECTS,但我想这样做:(伪代码)

foreach(src in SOURCES)
  src = concate(SRCFOLDER, src)
Run Code Online (Sandbox Code Playgroud)

所以,如果SOURCESmain.cpp window.cpp,结果将是src/main.cpp src/window.cpp.

我试过这个:

SOURCES=$(SOURCES:*=$(SRCFOLDER)/*)
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

makefile:12: *** Recursive variable `SOURCES' references itself (eventually). Stop.
Run Code Online (Sandbox Code Playgroud)

Bet*_*eta 11

SRCFOLDER := src
SOURCES := main.cpp window.cpp
SOURCES := $(addprefix $(SRCFOLDER)/, $(SOURCES))
Run Code Online (Sandbox Code Playgroud)