Heim >Backend-Entwicklung >C++ >Wie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt?

Wie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-08 03:48:101021Durchsuche

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

So erstellen Sie ein EINFACHES C-Makefile

Problem:
Wir müssen ein Makefile zur Verwaltung erstellen Unser C-Projekt, aber uns wurde nicht beigebracht, wie man das macht. Das Projekt besteht aus einer einzigen Datei, a3driver.cpp, die eine Klasse aus /user/cse232/Examples/example32.sequence.cpp importiert.

Lösung:

1. Grundlegendes Makefile:

a3a.exe: a3driver.cpp example32.sequence.cpp
    g++ -g -o a3a.exe a3driver.cpp example32.sequence.cpp

Dieses Makefile gibt an, dass die ausführbare Datei a3a.exe von den Quelldateien a3driver.cpp und example32.sequence.cpp abhängt. Bei der Ausführung wird der Befehl zum Kompilieren des Programms in die ausführbare Datei ausgeführt.

2. Verwendung integrierter Regeln:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

a3driver.o: a3driver.cpp
    $(CC) $(CPPFLAGS) -c a3driver.cpp

example32.sequence.o: example32.sequence.cpp
    $(CC) $(CPPFLAGS) -c example32.sequence.cpp

Dieses Makefile verwendet integrierte Regeln, um die Kompilierungsbefehle zu vereinfachen. Es definiert die CC-Variable als C-Compiler und die CPPFLAGS-Variable mit gemeinsamen Kompilierungsflags. Die Abhängigkeiten sind weiterhin explizit definiert, die Kompilierungsbefehle werden jedoch automatisch generiert.

3. Verwendung automatisch generierter Abhängigkeiten:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

depend: .depend

.depend: $(SRCS)
    $(CC) $(CPPFLAGS) -MM $^ > .depend;

.PHONY: clean

clean:
    rm -f a3driver.o example32.sequence.o .depend

include .depend

Dieses Makefile verwendet das integrierte Flag -MM, um Abhängigkeiten automatisch zu generieren. Das abhängige Ziel führt den Befehl aus, der die Datei .depend mit den Abhängigkeiten generiert. Das .PHONY:clean-Ziel ist ein spezielles Ziel, das eigentlich keine Datei oder Regel ist. Das saubere Ziel entfernt die Objektdateien und die .depend-Datei.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein einfaches C-Makefile für ein Einzeldateiprojekt?. 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