Detaillierte Erläuterung der Verwendung des gcc-Befehls unter Linux

Detaillierte Erläuterung der Verwendung des gcc-Befehls unter Linux

1. Installation von gcc (am Beispiel von Ubuntu) sudo apt-get install build-essential

Nach der Installation können Sie die Version mit gcc --version überprüfen.

Lassen Sie uns seine grundlegende Anwendung beim Kompilieren ausführbarer Dateien durch gcc meistern.

Vorbereitung: Erstellen Sie zunächst mit vim eine .c-Datei im aktuellen Verzeichnis, zum Beispiel 666.c

 $ vim 666.c

(Die Verwendung von vim kann in einem anderen Blog von mir ausführlich beschrieben werden, daher werde ich hier nicht ins Detail gehen.)

Geben Sie einen Code ein.

 #include <stdio.h>
hauptsächlich()
{
	int a,i;
	ein = 6;
	für (i = 0; i < 3; i++)
	{
		drucken("%d",a);
	}
} 

(Jedes Mal, wenn wir cat zur Überprüfung verwenden)

1. Vorverarbeitung

1. Die Vorverarbeitung erweitert Makrodefinitionen (wie #define), erweitert Headerdateien (wie stdio.h), kompiliert Bedingungen (wie ifdef), erweitert alle Makros und löscht alle Kommentare (wie "//"). Die Vorverarbeitung cpp kompiliert Quellcode und Headerdateien vorab in eine .i-Datei. (Beachten Sie, dass die Syntax derzeit nicht geprüft wird. Auch bei Syntaxfehlern wird daher kein Fehler gemeldet.)

2. Befehl:

 $ gcc -E (Quelldateiname) -o (Präprozessordateiname)

oder:

 $ gcc (Quelldateiname) > (Präprozessordateiname)

Beispielsweise kann die Vorverarbeitung gemäß 666.c wie folgt aussehen:

gcc -E 666.c -o 666.i

Es kann auch gcc 666.c > 666.i sein

2. Zusammenstellung

1. Unter Kompilieren versteht man die Überprüfung auf korrekte Syntax und das Kompilieren der vorverarbeiteten Datei in eine Assemblydatei.

2. Befehl:

$ gcc -S (Quelldatei) -o (Assemblydatei)

Beispiel: gcc -S 666.i -o 666.s

3. Zusammenstellung

1. Assembly bedeutet das Erzeugen von Zieldateien (Binärdateien) aus Assemblydateien. Durch die Assembly werden Textcodes in Binärcodes umgewandelt. (Binärcodedateien haben die Endung .o).

2. Befehl:

 $ gcc -c (Assemblydatei) -o (Objektdatei)

Beispiel: gcc -c 666.s -o 666.o

(Da es sich um eine Binärdatei handelt, wird sie verstümmelt.)

4. Links

1. Verknüpfen Sie, um abhängige Bibliotheksdateien (statisch und dynamisch) zu finden und die Zieldateien in ein ausführbares Programm zu verknüpfen.

 $ gcc -c [Zieldatei] -o [ausführbares Programm] -l [Name der dynamischen Bibliothek]

Wenn keine dynamische Bibliothek vorhanden ist (normalerweise)

direkt

 $ gcc -c [Zieldatei] -o [ausführbares Programm] 

Beispiel: gcc -c 666.o -o 666

Zu diesem Zeitpunkt wird ein ausführbares Programm 666 generiert

Wenn Sie diesen Befehl ausführen möchten:

 $ ./ausführbares Programm

Das ./ bedeutet im aktuellen Verzeichnis.

Zum Beispiel./666

(Hinweis: Wenn wir den Namen der ausführbaren Datei von gcc verwenden, wird im Allgemeinen standardmäßig eine ausführbare Datei a.out generiert. In diesem Fall können wir ./a.out verwenden, um sie direkt auszuführen.)

Dies ist das Ende dieses Artikels über die detaillierte Verwendung des gcc-Befehls unter Linux. Weitere relevante Inhalte zum Linux-gcc-Befehl finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Spezifische Verwendung des Linux-gcc-Befehls
  • So installieren Sie die Linux-Onlinesoftware gcc online
  • Installationsprozess des GCC-Compilers unter Linux

<<:  Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

>>:  Detaillierte Erklärung, wie man IP-Adressen effektiv in MySQL speichert und wie man zwischen String-IP und numerischen Werten konvertiert

Artikel empfehlen

Fallstudie: Ajax responseText analysiert JSON-Daten

Lösen Sie das Problem, dass der vom Server nach d...

Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Ich werde nicht erklären, was CUDA ist, sondern d...

border-radius-Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...

JS realisiert Bild Digitaluhr

In diesem Artikelbeispiel wird der spezifische JS...

Vergleich der von der MySQL-Datenbank unterstützten Speicher-Engines

Inhaltsverzeichnis Speicher-Engine Von MySQL unte...

Vue3 Vue-Ereignisbehandlungshandbuch

Inhaltsverzeichnis 1. Grundlegende Ereignisbehand...

So installieren Sie Docker unter Windows 10 Home Edition

Ich habe Docker kürzlich verwendet, um ein Projek...

Vue implementiert rekursiv benutzerdefinierte Baumkomponenten

In diesem Artikel wird der spezifische Code der r...

Eine kurze Diskussion über Yahoos 35 Regeln zur Front-End-Optimierung

Zusammenfassung: Ob bei der Arbeit oder im Vorste...