Im folgenden Beispiel Makefile:Makefile: berechnete Variablenname
EXTENS := .c .C .cc .c++ .cpp .cxx
SOURCES := 1.c 2.C 3.cc 4.c++ 5.cpp 6.cxx
OBJECTS := $(SOURCES)
REPLACE_EXTENS = $(foreach f,$(EXTENS),$(eval $(1) := $(patsubst %$(f),%.o,$($(1)))))
$(call REPLACE_EXTENS, OBJECTS)
all:
@echo $(SOURCES)
@echo $(OBJECTS)
Ich erwarte, dass die Linie @echo $(OBJECTS)
zur Ausgabe:
1.o 2.o 3.o 4.o 5.o 6.o
aber es nichts gibt. Was mache ich falsch und was wäre der richtige Weg?
'$ (eval ...)' macht keinen Sinn, hier machen. – reinierpost
'was wäre der richtige Weg, um es zu tun 'Sie sollten wahrscheinlich auf das, was Sie versuchen, damit zu lösen. – user657267
@ user657267, ich dachte, es wäre ziemlich offensichtlich - Liste der Objektdateien aus der Liste der Quelldateien erstellen –