Ich versuche, Makefile zu verwenden, um eine Reihe von .cpp
Dateien in src/code/*.cpp
sich zu kompilieren, kompilieren dann jede *.o
in build/
und schließlich ausführbare erzeugen mit denen in build/
auch.Makefile: Kompilieren aus dem Verzeichnis in ein anderes Verzeichnis
Ich habe ein paar Antworten gelesen, mit denen ich versucht habe zu arbeiten, habe aber Probleme entdeckt, die ich nicht verstehe.
CC = g++
FLAGS = -g -c
SOURCEDIR = /src/code
BUILDDIR = build
EXECUTABLE = DesktopSpecificController
SOURCES = $(wildcard src/code/*.cpp)
OBJECTS = $(patsubst src/code/*.cpp,build/%.o,$(SOURCES))
all: dir $(BUILDDIR)/$(EXECUTABLE)
dir:
mkdir -p $(BUILDDIR)
$(BUILDDIR)/$(EXECUTABLE): $(OBJECTS)
$(CC) $^ -o [email protected]
$(OBJECTS): $(BUILDDIR)/%.o : $(SOURCEDIR)/%.cpp
$(CC) $(FLAGS) $< -o [email protected]
clean:
rm -f $(BUILDDIR)/*o $(BUILDDIR)/$(EXECUTABLE)
ich folgende Fehlermeldung zu tun bekommen, und ich bin nicht sicher, warum:
Makefile:19: target `src/code/main.cpp' doesn't match the target pattern
ich auch sehen, dass, wenn die ausführbare Datei zu bauen versucht, es ist nicht die .o-Dateien verwenden, so dass es scheint meine Regel hier falsch zu sein.
nur leicht meinen Makefile aktualisiert. – user1777907