So erstellen Sie ein EINFACHES C-Makefile
Erstellen eines Makefiles für ein einfaches C-Projekt
Problem:
- Es muss ein Makefile erstellt werden, um ein Projekt zu kompilieren, das aus einem einzelnen C besteht Datei (a3driver.cpp), die eine Klasse von einem anderen Speicherort importiert („/user/cse232/Examples/example32.sequence.cpp“).
Antwort:
Erstellen der Makefile:
- Erstellen Sie eine Makefile-Datei.
-
Variablen angeben:
- CC: C-Compiler (z. B. gcc)
- CXX: C-Compiler (z. B. g)
- RM: Befehl zum Entfernen von Dateien (z. B. rm -f)
- CPPFLAGS: Kompilierungsflags (z. B. -g zum Debuggen)
- LDFLAGS: Linker-Flags (z. B. -g für Debuggen)
- LDLIBS: Zu verknüpfende Bibliotheken (in diesem Fall leer)
-
Quell- und Objektdateien definieren:
- SRCS: Liste der C-Quelldateien
- OBJS: Liste der entsprechenden Objektdateien (generiert durch Substitution)
-
Ziele definieren:
- alle: Hauptziel, standardmäßig wird die ausführbare Datei erstellt
- Tool: Ausführbare Datei Name
-
Abhängigkeiten angeben:
- Abhängigkeiten für die ausführbare Datei und die Objektdateien angeben (nicht erforderlich, da wir sie verwenden werden). eingebaut Regeln)
-
Eingebaute Regeln verwenden:
- Makefile übernimmt automatisch Kompilierungs- und Verknüpfungsaufgaben basierend auf definierten Variablen und Zielabhängigkeiten
-
Reinigung Ziele:
- clean: Entfernt Objektdateien
- distclean: Entfernt alle generierten Dateien
Makefile Beispiel:
CC=gcc
CXX=g++
RM=rm -f
CPPFLAGS=-g
LDFLAGS=-g
LDLIBS=
SRCS=a3driver.cpp
OBJS=$(subst .cpp,.o,$(SRCS))
all: tool
tool: $(OBJS)
$(CXX) $(LDFLAGS) -o tool $(OBJS) $(LDLIBS)
clean:
$(RM) $(OBJS)
distclean: clean
$(RM) tool
Ausführen des Makefile:
- Öffnen Sie das Terminal oder die Eingabeaufforderung.
- Navigieren Sie zu dem Verzeichnis, in dem sich das Makefile befindet.
- Geben Sie „make“ ein, um das zu erstellen Projekt.
- Dadurch wird die ausführbare Datei „tool“ erstellt, wenn der Build erfolgreich ist.
Das obige ist der detaillierte Inhalt vonWie erstelle ich ein einfaches C-Makefile für ein einzelnes Quelldateiprojekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn