Einführung
Wenn ein Programm beispielsweise aus C- oder C ++ - Quellcode kompiliert wird, übersetzt ein Compiler wie gcc
(siehe unten) diesen Code in die native Binärsprache der CPU, damit das Programm ausgeführt werden kann. Somit wird menschlich lesbares Material (Quellcode) in ein nicht menschlich lesbares Format (maschinenlesbarer Binärcode) umgewandelt.
Binärdateien und das Dateisystem
Wenn Sie eingeben echo $PATH
, sehen Sie einen Speicherort aller ausführbaren Dateien auf dem System, sowohl kompilierte Binärdateien als auch Skripte:
/home/mike/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
In den Dateisystem - Hierarchieschlüssel Systemprogramme wie cat
und getty
vorhanden sind , in /bin
und /sbin
bzw. und anderen Werkzeugen , wie beispielsweise dpkg
und chroot
vorhanden sind in , /usr/bin
und /usr/sbin
auf. Wenn Sie ein Programm kompilieren, indem Sie den Quellcode herunterladen, den Build konfigurieren und installieren, sollte Ihr Programm standardmäßig in /usr/local/bin
die anderen Dateien in der /usr/local
Hierarchie aufgenommen werden.
Compiler
Wahrscheinlich ist eines der bekanntesten Tools zum Kompilieren von Binärdateien das gcc
, das als GNU Compiler Collection und früher als GNU C Compiler bekannt ist. Die mit Ubuntu 12.04 gelieferte Version ist gcc 4.6.3
. Wie im offiziellen GNU- Handbuch vermerkt ,
GCC is an integrated distribution of compilers for several major programming
languages. These languages currently include C, C++, Objective-C, Objective-C++,
Java, Fortran, Ada, and Go.
Eine Binärdatei kompilieren
Die drei Befehle ./configure
, make
und sudo make install
(oder sudo checkinstall
) werden oft gemeinsam verwendet , um ein Programm zu kompilieren.
Beim Ausführen ./configure
wird unter anderem die gcc
installierte Version überprüft und die Build-Umgebung vorbereitet. Dies makefile
ist eines der wichtigsten Dinge, die beim Ausführen generiert werden, ./configure
da es den Build beim make
Ausführen steuert . Die GNU macht manuelle Details des Prozesses in großer Tiefe. Zusammenfassend makefile
bestimmen die Regeln im Hauptziel (Erstellen einer ausführbaren Datei), sodass die Quellcodedateien .c
zu kompilierten Dateien ( .o
Dateien) verarbeitet werden, um die ausführbare Zieldatei zu generieren.
Ressourcen
Zwei großartige Ressourcen sind diese Ubuntu-Kompilierungshandbücher hier und hier , die einige großartige Ratschläge und Informationen für diejenigen enthalten, die neu in der Kompilierung sind. Andere Ressourcen wie das GNU- gcc
Handbuch und das make
Handbuch, das ich bereits erwähnt habe. Weitere Informationen zu C und zum Erstellen eines einfachen kleinen C-Programms finden Sie in Kapitel 22 von Rute und Kapitel 24 der Linux-Befehlszeile .
/bin
und/usr/bin/
Verzeichnisse enthalten auch Befehle , die in Skriptsprachen geschrieben werden , wiesh
,bash
,perl
,python
, etc ... Versuchen Sie ,file /bin/* | less
in einem Terminal.