Verwendung des Makefile-Skripts in Lernnotizen zur C-Sprache

Was ist ein Makefile-Skript:

 Das Makefile-Skript sammelt die Dateien der Kompilierungsanweisungen des Programms. make ist ein Befehlstool. Wenn der Befehl make ausgeführt wird, werden die Kompilierungsanweisungen im Makefile automatisch gelesen und ausgeführt und die automatische Kompilierung des gesamten Projekts wird automatisch abgeschlossen.

Warum wird das Makefile-Skript benötigt:

 Wenn das Projekt viele .c-Dateien enthält, gibt es viele Kompilierungsanweisungen dafür, die erforderliche Kompilierungszeit ist relativ lang und die Abhängigkeiten sind sehr kompliziert.
    Wenn die .h-Dateien und .c-Dateien im Projekt geändert werden, können wir nicht künstlich unterscheiden, welche Dateien neu kompiliert werden müssen, sondern nur alle neu kompilieren, aber dieser Vorgang ist sehr zeitaufwändig.
    Verwenden Sie also das Makefile-Skript, um das Projekt zu kompilieren:
        1. Sparen Sie Zeit
        . 2. Zeichnen Sie Abhängigkeiten zwischen Dateien auf
        . 3. Automatisieren Sie den Kompilierungsprozess

Das Prinzip des Makefile-Skripts:

Das Prinzip des Makefile-Skripts basiert auf dem Zeitpunkt der letzten Änderung der Datei. Wenn der Zeitpunkt der letzten Änderung der abhängigen Datei nach dem Zeitpunkt der Zieldatei liegt, muss die Datei neu kompiliert werden.
        hallo.c > hallo.o 
            gcc -c hallo.c
        hallo.h > hallo.o 
            gcc -c hallo.c

Das Format des Makefile-Skripts:

Es besteht aus mehreren Kompilierungszielen. Es ähnelt der Funktion in der Sprache C. Es handelt sich um ein Kompilierungsmodul, das aus mehreren Kompilierungsanweisungen besteht. Standardmäßig wird nur das erste Kompilierungsziel ausgeführt, das auch als Eingabeziel bezeichnet wird.

    Ziel ... : Voraussetzungen ...
        Befehl
        ...
        ...

    Ziel: Kompilierungsziel. Wenn es nicht existiert oder früher als die Datei liegt, von der es abhängt, führen Sie die folgenden Kompilierungsanweisungen aus.
    Voraussetzungen: Das abhängige Kompilierungsziel und die abhängige Datei, was dem Funktionsaufruf der C-Sprache entspricht.
    Befehl: Kompilierungsanweisungen 

Variablen können im Makefile-Skript verwendet werden:
    Variablenname=Wert Definieren Sie Variablen und weisen Sie Variablen Anfangswerte zu
    $(Variablenname) Verwenden Sie den Variablennamen, um den Wert der Variablen zu erhalten.
    Häufig verwendete Variablennamen:
        CC=Compiler
        STD=Grammatikstandard
        FLAG=Prüfstandard, -Wall, -Werror
        TARGE=Name der endgültigen ausführbaren Datei 
        OBJECT=Name aller Objektdateien
 

Kompilieren Sie die für die Bereinigung verantwortlichen Ziele:

Das Kompilierungsziel ist im Allgemeinen für das Löschen der Zieldatei, des Kompilierungsergebnisses der Header-Datei und der ausführbaren Datei verantwortlich.
    Im Allgemeinen wird darauf nicht vertraut, das heißt, es wird nicht ausgeführt, sondern bei Bedarf manuell über den Make-Zielnamen in der Befehlszeile ausgeführt.
    Wenn es ausgeführt werden muss:
        1. Der neu geänderte Inhalt hat sich nicht geändert. Möglicherweise liegt ein Problem mit Abhängigkeiten vor und der Code wurde nicht neu kompiliert. Durch die Ausführung können alle Zieldateien und ausführbaren Dateien gelöscht und neu kompiliert werden.
        2. Nach dem Wechsel der Ausführungsplattform können alle zuvor kompilierten Zieldateien nicht mehr verwendet werden.
        3. Wenn das Projekt endgültig gestartet wird, werden alle Kompilierungsergebnisse gelöscht und neu kompiliert.

    sauber:
        rm -rf $(OBJECT) $(TARGE)
        rm -rf .h.gch

Allgemeine Makefile-Dateivorlage:

CC=gcc
STD=-std=gnu99
FLAG=-Wall -Werror
TARGE=manager
OBJECT=main.o tools.o manager_user.o

$(TARGE):$(OBJECT)
    $(CC) $(OBJECT) -o $( TARGE) 

%.o:%.c 
    $(CC) $(STD) $(FLAG) -c $<

clean:
    rm -rf $(OBJECT) $(TARGE)
    rm -rf .h.gch

Guess you like

Origin blog.csdn.net/m0_62480610/article/details/125929395