Skip to main content

Das GNU Make Book - Entmystifizierung der Linux Build-Automatisierung

Calling All Cars: The Grinning Skull / Bad Dope / Black Vengeance (Kann 2024)

Calling All Cars: The Grinning Skull / Bad Dope / Black Vengeance (Kann 2024)
Anonim

Neben dem Schreiben über Linux und dem Schreiben von Reviews und Tutorials über Distributionen und Tools bin ich auch stark in die Softwareentwicklung eingebunden. Leider findet 99,9% dieser Softwareentwicklung auf der Windows-Plattform statt.

Ich habe über 20 Jahre Erfahrung als C ++ -, Visual Basic-, VB.NET- und C # -Entwickler, und ich bin sowohl als DBA als auch als Entwickler mit SQL Server vertraut.

Was ich nicht so gut kann, ist die Entwicklung von Software für Linux. Ich habe mich nie wirklich damit beschäftigt. Der Hauptgrund ist, dass nach der Entwicklung von Software während des Tages das Letzte, was ich tun möchte, der Abendsitz ist und mehr Software schreibt.

Offensichtlich bastele ich gerne an Scripting und schreibe das seltsame kleine Programm. Dies sind in der Regel elektronische Projekte auf dem Raspberry PI.

Eine Sache, mit der viele Entwickler auf der Windows-Plattform Schwierigkeiten haben werden, wenn sie zum ersten Mal zu Linux wechseln, ist, welche Tools zum Erstellen und Packen von Anwendungen erforderlich sind.

Die einfachste Art von Anwendungen, die entwickelt werden können, sind Webanwendungen, da sie im Allgemeinen keinen kompilierten Code (PHP, Perl, Python) erfordern und die Dateien an einem festgelegten Ort auf dem Webserver bereitgestellt werden.

Eine große Anzahl von Anwendungen, die für Linux entwickelt wurden, werden mit C, C ++ oder Python entwickelt. Ein einzelnes C-Programm zu kompilieren ist relativ einfach, aber wenn Sie eine Reihe von C-Programmen mit mehreren Abhängigkeiten erstellen müssen, wird dies etwas schwieriger.

GNU Make ist ein Build-Automation-Tool, mit dem Sie Ihre Anwendungen immer wieder neu und auf unterschiedliche Weise kompilieren können. Sie können beispielsweise einen Parameter angeben, der eine Anwendung je nach Wert mit 64-Bit oder 32-Bit kompiliert.

Das Buch GNU Make wurde von John Graham-Cumming geschrieben, um Benutzern von GNU Make zu helfen, die Komplexität von GNU Make besser in den Griff zu bekommen.

Das Buch ist in sechs Kapitel unterteilt:

  1. Die Grundlagen wieder aufgegriffen
  2. Makefile Debugging
  3. Bauen und Wiederaufbau
  4. Fallstricke und Probleme
  5. Den Umschlag drücken
  6. Die GNU Make Standard Library

Ich glaube nicht, dass sich das Buch wirklich an Anfänger richtet, da es an einigen Klarstellungen mangelt, die Sie erwarten würden, wenn Sie ein neues Thema lernen, wie "Was ist GNU Make?", "Wie erstelle ich eine Make-Datei?", "Warum" ist Make besser, als jedes Programm einzeln zu kompilieren? " und "Wie kompiliere ich Programme mit GNU Make?". Alle diese Themenbereiche werden im GNU Make-Handbuch behandelt.

Die Tatsache, dass das erste Kapitel "The Basics Revisited" im Gegensatz zu "The Basics" genannt wird, zeigt deutlich, dass von Ihnen erwartet wird, dass Sie sich mit dem Thema befassen, bevor Sie beginnen.

Das erste Kapitel behandelt alle Grundlagen wie die Verwendung von Variablen, von Befehlen verwendete Umgebungen und die $ (Shell) -Umgebung. Im weiteren Verlauf des Kapitels werden Sie mit dem Thema Vergleich, Listen und benutzerdefinierten Funktionen vertraut.

Wenn Sie GNU Make seit einiger Zeit verwenden, sich aber noch nicht für einen Experten halten, gibt es einige nützliche Hinweise und Tipps, die Ihnen helfen, bestimmte Feinheiten zu verstehen, die möglicherweise nicht sofort erkennbar sind.

Das zweite Kapitel wird ein Glücksfall für diejenigen von Ihnen sein, die versucht haben, Fehler in Build-Skripts aufzufangen. Der Abschnitt "Makefile-Debugging" enthält zahlreiche Hinweise und Tipps zum Debuggen von Makefiles sowie Abschnitte zum Drucken von Variablenwerten und sogar zum Ablegen der Werte jeder Variablen. In diesem Kapitel finden Sie eine Anleitung zum GNU-Debugger, mit der Sie Skripts schrittweise durchgehen können.

Das dritte Kapitel enthält Beispiel-Makefiles, aber Sie erfahren mehr darüber, wie Sie Makefiles erstellen, die Sie immer wieder ausführen können.

"Fallstricke und Probleme" betrachtet die Unterschiede zwischen bestimmten Begriffen wie = und: = und ifndef und? =.

Als ich das Buch weiter durchging, fand ich heraus, dass ich mich nicht aktiv mit GNU Make beschäftige und weil sich mein Wissen auf einem sehr grundlegenden Niveau befindet, einige der Inhalte gingen mir sehr über den Kopf.

Als ich zum Kapitel "Pushing The Envelope" kam, wurden meine Augen etwas glasig.

Wenn ich dieses Buch zusammenfassen müsste, ist meine Hauptzusammenfassung, dass der Autor sein Zeug genau kennt und versucht hat, so viele Informationen wie möglich weiterzugeben.

Das Problem ist, dass manchmal, wenn ein Fachexperte versucht, etwas aufzuschreiben, diese "oh, es ist einfach, alles was Sie tun müssen, ist …." Aura über sie.

Die Gummidichtung an meiner Hintertür kam letzte Woche heraus und da sie erst ein paar Jahre alt ist, habe ich die Firma angerufen, die sie montiert hat, da sie noch in Garantie ist.

Die Dame am Telefon sagte: "Oh, das ist in Ordnung, ich schicke Ihnen ein neues Siegel".

Ich sagte: "Oh, muss ich es selbst einbauen? Kann ich das tun?"

Die Antwort war "Sicher können Sie, Sie müssen nur die Tür abnehmen, die Dichtung anbringen und die Tür wieder anbringen".

Jetzt war mein Gedanke "Woah, ein bisschen zurückspulen. Nehmen Sie die Tür ab?!?". Ich bin nicht befugt, eine Tür abzunehmen, eine Dichtung anzubringen und die Tür wieder einzubauen. Das überlasse ich den Experten.

Mit diesem Buch denke ich, dass Sie ein anderes Buch und eine gewisse Menge an Erfahrung beim Schreiben von Makefiles benötigen, bevor Sie es als nützlich erachten.

Ich denke, die Hinweise, Tipps und das Wissen würden einigen Leuten helfen zu sagen: "Oh, das ist der Grund, warum das so ist" oder "Ich wusste nicht, dass man es so machen könnte".

Meine Einschätzung ist daher, dass Sie dieses Buch kaufen sollten, wenn Sie nach Klarheit oder fortgeschrittenem Wissen über GNU Make suchen, aber es ist kein Buch für Anfänger.