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

Implementierung einer Suchfeldfunktion mit Suchsymbol basierend auf HTML-CSS

Vorwort Ich möchte Ihnen zeigen, wie Sie ein Such...

Zusammenfassung und Beispiele der Kommunikationsmethoden für Vue3-Komponenten

Die Kommunikationsmodi der Vue3-Komponenten sind ...

Häufige Verwendung von Hooks in React

Inhaltsverzeichnis 1. Was ist ein Hook? 2. Warum ...

Verwenden von CSS zum Implementieren einer Ladeanimation des Android-Systems

Im Web gibt es zwei gängige Ladesymbole: eines is...

Einführung in die Farbabstimmung von Königsblau für Webdesign

Klassische Farbkombinationen vermitteln Kraft und ...

So finden Sie langsame MySQL-Abfragen

Vorwort Ich glaube, dass jeder in seiner tägliche...

Detaillierte Erläuterung des MySQL MVCC-Mechanismusprinzips

Inhaltsverzeichnis Was ist MVCC Mysql-Sperre und ...

Detaillierte Schritte zur Installation von Anaconda unter Linux (Ubuntu 18.04)

Anaconda ist die beliebteste Python-Plattform für...