Was ist ein Makefile und wie funktioniert es unter Linux?

Was ist ein Makefile und wie funktioniert es unter Linux?

Si Sie möchten eine Aufgabe ausführen oder aktualisieren, wenn bestimmte Dateien aktualisiert werdenkann das Dienstprogramm make nützlich sein. Das Dienstprogramm make erfordert eine Datei, makefile, die eine Reihe von auszuführenden Aufgaben definiert.

Dieser Name kommt vielen von Ihnen bekannt vor, da Sie möglicherweise make verwendet haben, um ein Programm aus dem Quellcode zu kompilieren. Die meisten Open Source-Projekte verwenden make, um eine endgültige ausführbare Binärdatei zu kompilieren, die mit make install installiert werden kann.

dieses Mal Lassen Sie uns verstehen, wie diese Art von Dateien unter Linux funktioniert.

Eine Makefile-Datei Grundsätzlich werden vier grundlegende Arten von Aussagen unterschieden:

  • Mitteilung
  • Variablen.
  • Explizite Regeln.
  • Implizite Regeln.

Die expliziten Regeln geben an, welche Dateien von anderen Dateien abhängen, sowie die Befehle, die zum Kompilieren einer bestimmten Datei erforderlich sind.

Die impliziten sind zwar den expliziten ähnlich, aber mit dem Unterschied geben sie die auszuführenden Befehle an, aber make verwendet die Dateierweiterungen, um zu bestimmen, welche Befehle ausgeführt werden sollen.

In diesem Beispiel werden wir diese beiden letzten nicht verwenden. Wir werden zunächst den Klassiker "Hello World" im Terminal drucken.

Dazu erstellen wir ein leeres Verzeichnis mit dem gewünschten Namen.

In diesem Fall Nennen wir es "Beispiel machen". und darin Wir werden ein Makefile mit folgendem Inhalt erstellen:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

Jetzt Führen Sie die Datei aus, indem Sie make in das Verzeichnis eingeben. Die Ausgabe lautet:

make
echo "Hola Mundo"
Hola Mundo

Wie Sie sehen können, als das Makefile ausgeführt wurde, wird das Befehlsecho "Hello World" angezeigt, gefolgt von der Ausgabe des eigentlichen Befehls. Das wollen wir oft nicht. Um diese Ausgabe beim Ausführen von make zu unterdrücken, fügen Sie einfach ein "@" vor dem Echo hinzu:

Das praktische Beispiel hierfür ist:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

Jetzt Wir können fortfahren, das Makefile erneut auszuführen. Die Ausgabe genau dies sollte zeigen:

make
Hola Mundo

Das ist ziemlich einfach. Aber wie Sie wissen, enthalten Makefiles viele Dinge, von denen sie die zu befolgenden Sequenzen angeben.

Wir können dieser Datei einige einfache Sequenzen hinzufügen.

Als Wir werden die Datei wie folgt bearbeiten:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Wenn Sie das Makefile erneut ausführen, Dadurch wird nur das erste Ziel ausgeführt. Dies liegt daran, dass nur das erste Ziel im Makefile das Standardziel ist.

Damit die Ausführung nacheinander ausgeführt wird es ist notwendig, es in der Datei mit "all" anzugeben. Es liegt in der Verantwortung von "dort", andere Ziele zu nennen.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Sie können make erneut ausführen und sehen, dass im Verzeichnis eine Datei namens aufgerufen wird "File.txt".

ähnlich Es ist möglich, ein Ziel in der Makefile-Datei auszuführenDies wird im Allgemeinen sehr häufig verwendet.

Wir werden unsere Datei ändern und am Ende Folgendes hinzufügen:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Sie können make erneut ausführen und die txt-Datei wird neu erstellt. Wie Sie sehen werden, funktioniert es genauso wie beim vorherigen Mal. Aber jetzt werden wir das Ziel ausführen, das sich in der Makefile-Datei befindet.

Wir machen das mit:

make clean

Auf diese Weise können wir etwas Grundlegendes über das Erstellen von Dateien lernen und wie sie sehr nützlich sein können, wenn wir einige Dinge automatisieren möchten.

Natürlich können Sie eine größere und komplexere Datei erstellen, aber dies ist nur ein Beispiel für Neulinge (ich schließe mich selbst ein), die erfahren, wie dies funktioniert.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   arg0s sagte

    Sehr interessanter Artikel. Eine Frage ... was Sie "Variablen" nennen, wären keine Funktionen oder Methoden?

    1.    David Orange sagte

      In der Tat, ja mein Freund, danke für die Korrektur.
      Grüße 🙂

  2.   Pedro sagte

    Ausgezeichnet, ich hoffe du gräbst weiter.

  3.   Manuel ALcocer sagte

    Nun, weder das eine noch das andere, https://www.gnu.org/software/make/manual/make.htmlsind "Ziele"

  4.   Manuel ALcocer sagte

    Regeln

  5.   Sebas sagte

    Hoffentlich erklären sie weiterhin solche Dinge, "allgegenwärtig und elementar", über das tägliche Laufen von Linux, die niemand jemals mit der gleichen Leidenschaft erklärt, wie diese "Vorteile und Funktionsweise" gepredigt werden.