Heim >Backend-Entwicklung >C++ >Wie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt mit externen Abhängigkeiten?
So erstellen Sie ein EINFACHES C-Makefile
Diese Anleitung bietet einen einfachen Ansatz zum Erstellen eines Makefiles für ein C-Projekt mit minimalen Abhängigkeiten.
Problem:
Sie müssen ein Makefile für ein Projekt mit einem erstellen einzelne Datei, a3driver.cpp, die eine Klasse aus „/user/cse232/Examples/example32.sequence.cpp“ importiert. Das Ziel besteht darin, eine ausführbare Datei mit dem Namen a3a.exe zu generieren.
Lösung:
1. Erstellen Sie ein Makefile:
Erstellen Sie eine Datei mit dem Namen Makefile im Projektverzeichnis.
2. Variablen definieren:
Beginnen Sie mit der Definition von Variablen, die im gesamten Makefile verwendet werden:
CC = g++ CFLAGS = -g LDFLAGS = -g LDLIBS = -lstdc++ -lm
3. Geben Sie Ziele an:
Als nächstes definieren Sie Ziele für das Projekt:
all: a3a.exe a3a.exe: a3driver.o example32.sequence.o a3driver.o: a3driver.cpp example32.sequence.o: example32.sequence.cpp
4. Abhängigkeiten definieren:
Abhängigkeiten für jedes Ziel definieren:
5. Regeln definieren:
Geben Sie die Befehle an, die für jedes Ziel und seine Abhängigkeiten ausgeführt werden:
a3driver.o: $(CC) $(CFLAGS) -c a3driver.cpp example32.sequence.o: $(CC) $(CFLAGS) -c example32.sequence.cpp a3a.exe: a3driver.o example32.sequence.o $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o $(LDLIBS)
6. Definieren Sie ein sauberes Ziel (optional):
Sie können auch ein sauberes Ziel definieren, um alle Build-Artefakte zu entfernen:
clean: rm -f a3driver.o example32.sequence.o a3a.exe
7. Führen Sie das Makefile aus:
Um das Projekt zu erstellen, führen Sie make über die Befehlszeile aus. Dadurch wird die ausführbare Datei a3a.exe erstellt.
Hinweis:
Da Unix-basierte Systeme keine Dateierweiterungen für ausführbare Dateien verwenden, verfügt das Ziel a3a.exe nicht über Dateierweiterungen eine Erweiterung im Makefile.
Das obige ist der detaillierte Inhalt vonWie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt mit externen Abhängigkeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!