Ich versuche, eine Make-Datei zu erstellen, die alle .cpp
Dateien im test
Verzeichnis .o
Dateien im Verzeichnis obj
kompilieren. Unten ist eine gekürzte Version dessen, was ich mache. Das Problem ist, dass die Aufrufe, die an die .o
Dateien kompiliert werden, den richtigen .o
-Namen haben, aber sie alle kompilieren die gleiche .cpp
-Datei.Make-Datei: alle CPP-Dateien kompilieren Dateien .o
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 müssen, um den entsprechenden .cpp
Datei zu machen zu kompilieren?
CPP_FILES := $(wildcard test/*.cpp)
OBJ_FILES = $(patsubst test/%.cpp,obj/%.o,$(CPP_FILES))
obj/%.o: $(CPP_FILES)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o [email protected] $<
executable : $(OBJ_FILES) foo.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o [email protected]
Danke.
Danke. Das hat perfekt funktioniert. – Tom