Kompilieren unter Linux: 3 Schritte zum Erstellen von Binärdateien 🔥
Wichtige Zusammenfassung
- Die Kompilierung der meisten Software aus dem Quellcode erfolgt in drei Schritten:
./configure && make && make install
. - Das Drehbuch konfigurieren prüft die Abhängigkeiten, machen generiert die ausführbare Datei und Tools wie autoconf/automake automatisieren Sie diesen Prozess.
- Die Installation ist normalerweise optional, was die Ausführung von Befehlen erleichtert, die in Verzeichnisse im
WEG
des Systems.
Das Kompilieren aus dem Quellcode kann im Vergleich zur Verwendung von Paketmanagern einschüchternd wirken, aber mit drei grundlegenden Befehlen ist der Vorgang einfach und unkompliziert. 🚀
Was ist das Kompilieren aus dem Quellcode?
Die von Ihnen verwendeten Programme können interpretiert oder kompiliert sein. Interpretierte Programme sind Textdateien mit Code, den ein anderes Programm (der Interpreter) in Echtzeit ausführt. Kompilierte Programme hingegen sind Binärdateien mit ausführbarem Maschinencode.
Kompilierte ausführbare Dateien sind sehr verbreitet, insbesondere in großen Programmen. Wenn Sie aus dem Quellcode kompilieren,sas ein Compiler wie gcc
um den Code in ein ausführbares Programm umzuwandeln, das oft auf mehrere Dateien verteilt ist.

Der Kompilierungsprozess kann umfangreich und komplex sein, weshalb er normalerweise mit Programmen wie automatisiert wird machen
Die Dateien Makefiles steuern, wie die endgültige ausführbare Datei erstellt wird.
Bei großen Projekten Makefiles Sie können so komplex sein, dass sie automatisch mit Tools wie generiert werden autoconf Und Automarke um die Kompatibilität zwischen verschiedenen Architekturen sicherzustellen. 🛠️
3-stufiger Build-Prozess: Konfigurieren, Erstellen, Installieren
Die meisten Programme verwenden dieses grundlegende Muster zum Kompilieren aus dem Quellcode:
./configure && make && make install
Beliebte Programme wie Apache verwenden diese Sequenz (oder eine Variante davon), wie zum Beispiel erklärt seine Akte INSTALLIEREN:

Node.js folgt ebenfalls dieser Struktur, wie in der Datei BUILDING.md angegeben:

Jedes Projekt kann geringfügig von dieser Befehlszeichenfolge abweichen. Verwenden Sie den logischen UND-Operator (&&
) stoppt den Prozess, wenn ein Schritt fehlschlägt:
./configure && make && make install
Oder Sie können jeden Befehl separat in einer einzelnen Zeile mit einem Semikolon ausführen. Dadurch werden jedoch alle Befehle ausgeführt, ohne anzuhalten, wenn einer fehlschlägt:
./konfigurieren; machen; machen installieren
Sie können die drei Zeilen auch einzeln ausführen:
./configure make make install
Wenn Sie das Programm nur ausprobieren möchten, ohne es zu installieren, können Sie es überspringen make install
und führen Sie es aus seinem Ordner aus.
konfigurieren
Bereit, während andere (wie grep) zuerst die Ausführung eines anderen Skripts erfordern, um es zu generieren. Beachten Sie immer die INSTALL-, BUILD- oder README-Datei, um den Empfehlungen des Projekts zu folgen. 📋So startet ./configure den Prozess
Das Drehbuch konfigurieren
Es ist der Ausgangspunkt des Kompilierungsprozesses und passt das Projekt an Ihre Umgebung an.
Dieses Skript prüft die für das Projekt erforderlichen Abhängigkeiten und prüft Versionen und Verfügbarkeit. Nach Abschluss generiert es eine Datei mit dem Namen Makefile
für die nächste Phase.
Das Drehbuch konfigurieren
bietet viele konfigurierbare Optionen mit ./configure --help
, sodass Sie Builddetails anpassen können.
konfigurieren
als machen
erzeugen viel Ausgabe auf dem Bildschirm. Verwenden Sie die Option --ruhig
wenn Sie diese Befehle ausführen möchten, ohne so viele Details anzuzeigen. 🤫Wenn das Skript fehlt konfigurieren
, einige Projekte enthalten ein Skript wie autogen.sh
um es zu generieren. Beispielsweise verwendet htop es:

Sehr einfache Projekte oder Projekte, die in anderen Sprachen geschrieben sind, haben möglicherweise nicht konfigurieren
Der Vorgang erfolgt dabei in zwei Schritten: machen && machen installieren
.
Das Drehbuch konfigurieren
Es steuert auch Installationsdetails, wie z. B. den Parameter --Präfix
, wodurch das Installationsstammverzeichnis festgelegt wird. Standardmäßig ist es /usr/local
, aber Sie können es ändern, um Ihre Dateien besser zu organisieren.
make erledigt den Großteil der Arbeit
Nach konfigurieren
erzeugt eine Makefile
, die eigentliche Kompilierung der Software beginnt mit machen
.
Dieses Programm liest die Makefile
und folgt Regeln, um zu entscheiden, welche Dateien erstellt oder aktualisiert werden sollen. Die Makefiles
Handschriftliche Texte sind für diejenigen, die die Syntax kennen, leicht verständlich.
Zum Beispiel dieses Makefile
einfach kompiliert ein Programm, das von der Datei abhängt program.c
:
Programm: program.c gcc -o Programm program.c
machen
prüfen Sie, ob program.c
seit der letzten Kompilierung geändert. Wenn es sich nicht geändert hat, tun Sie nichts; wenn doch, kompilieren Sie mit gcc
.

Der Makefiles
automatisch generierte sind in der Regel deutlich komplexer. So ist beispielsweise die Makefile
htop hat 2.440 Zeilen:

Sie müssen jedoch nicht jedes Detail verstehen. Sofern Sie den Quellcode nicht ändern, führen Sie ihn einfach aus. machen
und überlassen Sie die Arbeit dem System.
Der Schritt machen
Bei großen Projekten kann es einige Minuten oder länger dauern. Wenn es fehlschlägt, liegt es meist an fehlenden Abhängigkeiten. Der Vorteil ist, dass machen
speichert den Fortschritt und setzt den Vorgang dort fort, wo er unterbrochen wurde, wenn Sie erneut laufen.
Abschluss mit make install
Nach der Kompilierung befindet sich die erstellte ausführbare Datei normalerweise im Stammverzeichnis des Projekts oder in einem Unterverzeichnis namens bin
. Sie können es mit dem vollständigen Pfad ausführen:

Dies ist zum Testen nützlich, aber auf lange Sicht möchten Sie es an einem zugänglichen Ort installieren.
Das Ziel installieren
das definiert die Makefile
Kopieren Sie die erforderlichen Dateien und legen Sie die Berechtigungen fest. Der Standardspeicherort ist /usr/local/bin
, obwohl Sie es mit ändern können --Präfix
.
Wenn Sie keine Berechtigungen für diesen Ordner haben, führen Sie sudo make install
und gibt das Administratorkennwort an.
Das Installationsverzeichnis muss in Ihrer Variable enthalten sein WEG
um das Programm nur mit seinem Namen ausführen zu können, ohne den vollständigen Pfad anzugeben.