Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 2340|Antwort: 1

Einführung in GCC, CMake, CMakelist, Make, Makefile und Ninja

[Link kopieren]
Veröffentlicht am 09.07.2024 20:44:28 | | |
1. Die Geburt der GCC!

1985, in einer dunklen Nacht, als seine Finger außer Sicht waren, begann ein fremder Mann mit Bart, kurzer Figur und zerzaustem Haar, eine Reihe von C-Sprach-Compilern zu schreiben. Diese Ekphonie, später bekannt als der "größte Programmierer" und "Vater der freien Software", war Richard Stallman. Nach zwei Jahren harter Arbeit hat Richard Stallman, der einen längeren Bart und zerzaustere Haare hat, die erste Version des C-Compilers fertiggestellt, den er GNU C Complier nennt, der heute die Quelle des berühmten GCC ist. Später entwickelte sich GCC schnell, und heute kann GCC nicht nur die C-Sprache, sondern auch C++, Fortran, Pascal, Objective-C, Java, Ada und andere Sprachen kompilieren. In den 80er und 90er Jahren des letzten Jahrhunderts wurden CPU-Frequenz, Festplattengröße und Speichergröße von Personal Computern alle in MB oder sogar KB gemessen, und die Anzahl der zu kompilierenden Programmdateien war gering, und GCC-Befehle reichten aus, um das zu bewältigen.

Zweitens sind neue Probleme aufgetaucht! (machen & makefile)

Mit der Verbesserung und Popularisierung der Computerleistung enthält ein Softwareprojekt immer mehr Quelldateien, wie Linux, was leicht verwirrend und belastet ist, was leicht zu verwirren und belastet ist, was die Leute verrückt macht.

Richard Stallman und Roland McGrath entwickelten gemeinsam Make and Makefile, um dieses Problem zu lösen. Das Make-Tool kann als intelligentes Batch-Verarbeitungswerkzeug gesehen werden, das nicht die Funktion des Kompilierens und Verknüpfens hat, sondern eine Methode ähnlich der Batch-Verarbeitung verwendet – indem die vom Benutzer in der Makefile-Datei angegebenen Befehle aufgerufen werden. Was ist eine Makefile? Die Makefile ist eine Skriptdatei, einfach wie die Partitur eines Liedes, das Make-Tool ist wie ein Dirigent, der Dirigent weist das gesamte Orchester an, entsprechend der Partitur zu spielen, und das Make-Tool wird gemäß den Befehlen im Makefile kompiliert und verknüpft. Der Befehl makefile enthält Befehle, um gcc (oder einen anderen Compiler) aufzurufen, um eine Quelldatei zu kompilieren.

3. Neue Probleme sind wieder aufgetaucht! (Cmake & CMakelist)

Das Makefile kann bei einigen einfachen Projekten von Hand geschrieben werden, aber wenn das Projekt sehr groß ist, ist es auch sehr umständlich, das Makefile von Hand zu schreiben. Und Makefiles für verschiedene Plattformen sind nacheinander erschienen, darunter GNU make, QTs qmake, Microsofts MSnmake, BSD Make(pmake), Makepp usw. Diese Make-Tools folgen unterschiedlichen Spezifikationen und Standards, und das Makefile-Format, das sie verwenden, variiert stark. Das stellt ein ernstes Problem dar: Wenn die Software plattformübergreifend sein will, muss sie auf verschiedenen Plattformen kompilieren können. Wenn du das oben genannte Make-Tool benutzt, musst du für jeden Standard eine Makefile schreiben, was eine verrückte Arbeit ist, und wenn du die Plattform-Makefile änderst, musst du sie neu anpassen.

Zu diesem Zeitpunkt tauchte das Tool Cmake auf, und Cmake kann für das oben genannte Make eine Makefile-Datei einfacher generieren. Natürlich hat Cmake auch andere Funktionen, das heißt, es kann Makefiles generieren, die auf der entsprechenden Plattform plattformübergreifend verwendet werden können, ohne dass man es selbst ändern muss. cmake ist die obere Ebene von Makefile, und ihr Zweck ist es, portable Makefiles zu erstellen und die enorme Arbeitsbelastung, Makefiles selbst zu schreiben, zu vereinfachen. Aber was nutzt cmake, um eine Makefile zu erstellen? Es muss außerdem eine Makefile basierend auf einer Datei namens CMakeLists.txt File (wissenschaftlicher Name: Konfigurationsdatei) generieren. Am Ende CMakeLists.txt wer schreibt das Dokument? Natürlich hast du es selbst geschrieben.

Viertens, neue Probleme sind wieder aufgetaucht! (Ninja)

Da Software Engineering größer und komplexer wird, wird das Problem der langsamen Ausführung der Produktion immer ernster.

Infolgedessen startete ein Google-Programmierer Ninja, ein auf Geschwindigkeit fokussiertes Bautool. Ninja verfügt nicht über alle möglichen fortgeschrittenen Funktionen, die Syntax und die Nutzung sind sehr einfach, und es gibt genau an, was zu tun ist, sodass es sehr schnell mit der Kompilierung beginnt. Laut realen Tests ist es mit mehr als 30.000 Quelldateien auch möglich, einen echten Build in einer Sekunde zu starten. Im Gegensatz dazu benötigen von erfahrenen Ingenieuren geschriebene Makefiles ebenfalls 10–20 Sekunden zum Aufbau.

5. Das bisher perfekte Ende!

Cmake kann .ninja- und .makefile-Tools generieren. Da viele Menschen nicht wissen, wie man Makefile- und Ninja-Dateien schreibt, benötigt CMAKE nur eine einfache Beschreibung der Quellcode-Datei (also CMakeLists.txt Datei), um automatisch eine Projekt-Makefile- oder Ninja-Datei zu generieren und dann mit der Kompilierung über Ninja oder Make zu beginnen.


5 Minuten, um make/makefile/cmake/nmake zu verstehen.

Wurdest du in letzter Zeit von make, cmake, makefile... ... Diese Dinge sind schwindelig, schau dir den folgenden Artikel an, vielleicht kannst du es klar verstehen.

1. GCC
Es handelt sich um die GNU Compiler Collection, oder einfach ein Compiler, der viele Programmiersprachen kompilieren kann (darunter C, C++, Objective-C, Fortran, Java usw.).

Wenn unser Programm nur eine Quelldatei hat, können wir sie direkt mit dem Befehl gcc kompilieren.

Aber was, wenn unser Programm viele Quelldateien enthält? Beim Kompilieren mit gcc-Befehlen einzeln ist es leicht, verwirrt und arbeitsintensiv zu werden, sodass das folgende Machwerkzeug erscheint.

2. machen
Das Make-Tool kann als intelligentes Batch-Verarbeitungswerkzeug gesehen werden, das nicht die Funktion des Kompilierens und Verknüpfens hat, sondern eine Methode ähnlich der Batch-Verarbeitung verwendet – indem die vom Benutzer in der Makefile-Datei angegebenen Befehle aufgerufen werden.

3. Makefile
Was ist das?

Einfach ausgedrückt: Wie bei der Partitur eines Songs ist das Make-Tool wie ein Dirigent: Der Dirigent weist das gesamte Orchester an, entsprechend der Partitur zu spielen, und das Make-Tool kompiliert und verknüpft entsprechend den Befehlen im Makefile. Der Befehl makefile enthält Befehle, um gcc (oder einen anderen Compiler) aufzurufen, um eine Quelldatei zu kompilieren.

Die Makefile kann in einigen einfachen Projekten manuell verwendet werden, aber wenn das Projekt sehr groß ist, ist handgeschriebene Makefile ebenfalls sehr problematisch.

4. cmake
Cmake kann problemlos eine Makefile-Datei für das oben genannte Make erstellen. Natürlich hat cmake noch bessere Funktionen, nämlich dass es Makefiles generieren kann, die auf der entsprechenden Plattform plattformübergreifend verwendet werden können, sodass wir es nicht selbst modifizieren müssen.

Aber was nutzt cmake, um eine Makefile zu erstellen? Es muss außerdem eine Makefile basierend auf einer Datei namens CMakeLists.txt File (wissenschaftlicher Name: Konfigurationsdatei) generieren.

5. CMakeList.txt
Am Ende CMakeLists.txt wer schreibt das Dokument? Liebling, es ist von deiner eigenen Hand geschrieben.

6. nmake
Was ist nmake?

nmake ist ein Seitenbefehl in Microsoft Visual Studio, der VS installieren muss, was tatsächlich als äquivalent zu Linux Make bezeichnet werden kann, verstanden?

Übertragen von:

Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.





Vorhergehend:ERP Kingdee Cloud Starry Sky (1) Einfaches Verständnis
Nächster:Rocky Linux 9 Paket nicht gefunden: Kein Gegenstand für das Argument: xxx
 Vermieter| Veröffentlicht am 08.12.2024 08:57:06 |
MinGW bietet eine einfache und bequeme GCC-basierte Programmentwicklungsumgebung für Windows. MinGW sammelt eine Sammlung kostenloser Windows-Nutzungsheader- und Bibliotheksdateien; Es integriert außerdem GNU (http://www.gnu.org/) Werkzeuge, insbesondere GNU-Entwicklungswerkzeuge wie Classic GCC, G++, Make usw. MinGW ist eine vollständig freie Software, die die GCC-Entwicklungsumgebung unter Linux auf der Windows-Plattform simuliert, eine gute grundlegende Unterstützung für die plattformübergreifende Entwicklung von C++ bietet und Programmierern, die unter Windows arbeiten, Bedingungen bietet, um sich mit der C++-Ingenieurorganisation unter Linux vertraut zu machen.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com