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 catund getty vorhanden sind , in /binund /sbinbzw. und anderen Werkzeugen , wie beispielsweise dpkgund chrootvorhanden sind in , /usr/binund /usr/sbinauf. Wenn Sie ein Programm kompilieren, indem Sie den Quellcode herunterladen, den Build konfigurieren und installieren, sollte Ihr Programm standardmäßig in /usr/local/bindie anderen Dateien in der /usr/localHierarchie 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, makeund sudo make install(oder sudo checkinstall) werden oft gemeinsam verwendet , um ein Programm zu kompilieren.
Beim Ausführen ./configurewird unter anderem die gccinstallierte Version überprüft und die Build-Umgebung vorbereitet. Dies makefileist eines der wichtigsten Dinge, die beim Ausführen generiert werden, ./configureda es den Build beim makeAusführen steuert . Die GNU macht manuelle Details des Prozesses in großer Tiefe. Zusammenfassend makefilebestimmen die Regeln im Hauptziel (Erstellen einer ausführbaren Datei), sodass die Quellcodedateien .czu kompilierten Dateien ( .oDateien) 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- gccHandbuch und das makeHandbuch, 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 .
/binund/usr/bin/Verzeichnisse enthalten auch Befehle , die in Skriptsprachen geschrieben werden , wiesh,bash,perl,python, etc ... Versuchen Sie ,file /bin/* | lessin einem Terminal.