Datei: kompilieren alle .cpp-Dateien auf .o Dateien

Ich versuche zu schaffen, eine make-Datei, die kompiliert alle .cpp Dateien in der test Verzeichnis .o Dateien in der obj - Verzeichnis. Unten ist eine verkürzte version von dem, was ich Tue. Das problem ist, dass Aufrufe zu kompilieren, um die .o Dateien haben die richtige .o Namen, aber Sie alle sind in der Zusammenstellung der gleichen .cpp Datei.

gcc -c -o obj/foo.o test/foo.c
gcc -c -o obj/bar.o test/foo.c
gcc -c -o obj/baz.o test/foo.c

Was muss ich ändern, um es kompilieren der entsprechenden .cpp Datei?

CPP_FILES := $(wildcard test/*.cpp)
OBJ_FILES = $(patsubst test/%.cpp,obj/%.o,$(CPP_FILES))


obj/%.o: $(CPP_FILES)
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<

executable : $(OBJ_FILES) foo.a
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@

Dank.

InformationsquelleAutor Tom | 2010-08-15
Schreibe einen Kommentar