Heim > Backend-Entwicklung > C++ > Wie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt mit externen Abhängigkeiten?

Wie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt mit externen Abhängigkeiten?

Susan Sarandon
Freigeben: 2024-12-10 05:44:16
Original
387 Leute haben es durchsucht

How to Create a Simple C   Makefile for a Single-File Project with External Dependencies?

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
Nach dem Login kopieren
  • CC:Der C-Compiler.
  • CFLAGS: Kompilierungsflags für C-Quelle Dateien.
  • LDFLAGS: Verknüpfungsflags.
  • LDLIBS: Für die Verknüpfung erforderliche Bibliotheken.

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
Nach dem Login kopieren
  • all ist das Standardziel, das die ausführbare Datei erstellt.
  • a3a .exe ist das ausführbare Ziel.

4. Abhängigkeiten definieren:

Abhängigkeiten für jedes Ziel definieren:

  • a3a.exe hängt von a3driver.o und example32.sequence.o ab.
  • a3driver .o hängt davon ab a3driver.cpp.
  • example32.sequence.o hängt von example32.sequence.cpp ab.

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)
Nach dem Login kopieren
  • Diese Regeln kompilieren die Quelldateien und verknüpfen sie, um die zu erstellen ausführbar.

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage