Für die Übersetzung von C-Quellen stehen die Kommandos cc
, c11
und c89
zur Verfügung, für die Übersetzung von C++-Quellen das Kommando CC
.
Diese Kommandos sind ausführlich im Kapitel „Die Kommandos cc, c11, c89 und CC“ beschrieben.
C- und C++-Sprachmodi
Die C- und C++-Quellen können, durch Optionen steuerbar, in verschiedenen Sprachmodi übersetzt werden.
C-Sprachmodi (cc
/c11
/c89
-Kommandos):
erweiterter c11-Modus (
-X 2011 -X nostrict
), Voreinstellung fürcc
undc11
- strikter c11-Modus (
-X 2011 -X strict
) - erweiterter c89-Modus (
-X 1990 -X nostrict
), Voreinstellung fürc89
- strikter c89-Modus (
-X 1990 -X strict
) Kernighan&Ritchie-C (
-X kr
)
C++-Sprachmodi (CC
-Kommando):
- erweiterter C++ 2020-Modus (
-X 2020 -X nostrict
), Voreinstellung - strikter C++ 2020-Modus (
-X 2020 -X strict
) - erweiterter C++ 2017-Modus (
-X 2017 -X nostrict
) - strikter C++ 2017-Modus (
-X 2017 -X strict
) erweiterter C++ V3-Modus (
-X v3-compatible -X nostrict
)- strikter C++ V3-Modus (
-X v3-compatible -X strict
) - Cfront-C++-Modus (Cfront-V3.0.3-kompatibles C++) (
-X v2-compatible
)
Zu den Sprachmodus-Optionen siehe "Optionen zur Auswahl des Sprachmodus".
Erzeugen einer Objektdatei („.o“-Datei)
Wenn der Compilerlauf nicht nach der Präprozessorphase beendet wird (siehe Optionen-E
und -P
, "Optionen zur Auswahl von Übersetzungsphasen"), erzeugt der Compiler pro übersetzter Quelldatei ein LLM und legt dieses standardmäßig in eine POSIX-Objektdatei mit dem Namen basisname.o
im aktuellen Dateiverzeichnis ab. basisname ist der Name der Quelldatei ohne die Dateiverzeichnisbestandteile und ohne die Standard-Suffixe (.c
, .C
etc.).
Mit der Option -o
lassen sich für die Ausgabe der Objektdatei ein anderes Dateiverzeichnis und/oder ein anderer Dateiname vereinbaren (siehe "Allgemeine Optionen").
Standardmäßig wird nach dem Übersetzungslauf ein Bindelauf gestartet. Wenn in einem Arbeitsgang nur eine Quelldatei übersetzt und gebunden wird, wird die Objektdatei nur temporär angelegt und anschließend gelöscht. Wenn mindestens zwei Quelldateien oder zusätzlich zu einer Quelldatei eine Objektdatei (.o
-Datei) angegeben werden, bleiben die Objektdateien erhalten.
Mit der Option -c
(siehe "Optionen zur Auswahl von Übersetzungsphasen") kann der Bindelauf verhindert werden.
Erzeugen eines expandierten, weiterübersetzbaren Quellprogramms („.i“-Datei)
Bei Angabe der Option -P
wird nur ein Präprozessorlauf durchgeführt und pro übersetzte Quelldatei ein expandiertes, weiterübersetzbares Quellprogramm erzeugt. Das Ergebnis wird standardmäßig in eine POSIX-Quelldatei mit dem Namen basisname.i
(cc
, c11
, c89
) bzw. basisname.I
(CC
) in das aktuelle Dateiverzeichnis geschrieben.
Mit der Option -o
lassen sich für die Ausgabe des expandierten Quellprogramms ein anderes Dateiverzeichnis und/oder ein anderer Dateiname vereinbaren (siehe "Allgemeine Optionen").
Erzeugen von Übersetzungslisten
Mit der Option -N
listing können diverse Übersetzungslisten angefordert werden (z.B. Quellprogramm-/Fehlerliste, Querverweisliste etc.). Die angeforderten Listen schreibt der Compiler entweder pro übersetzte Quelldatei in eine Listendatei mit dem Namen basisname.lst
oder für alle übersetzten Quelldateien in eine mit der Option -N output
angegebene Listendatei file (siehe "Optionen zur Ausgabe von Listen und CIF-Informationen").
Für die Ausgabe von Übersetzungslisten können auch CIFs (Compilation Information Files) erzeugt werden, die anschließend mit dem globalen Listengenerator cclistgen
weiterverarbeitet werden. (Siehe Option -N cif
("Optionen zur Ausgabe von Listen und CIF-Informationen") und Kapitel „Globaler Listengenerator(cclistgen)“).
Für das Ausdrucken von Listendateien steht das POSIX-Kommando bs2lp
zur Verfügung (siehe Handbuch „POSIX-Kommandos“ [3]).
Ausgabeziele und Ausgabe-Codeset
Standardmäßig legt der Compiler die Ausgabedateien im aktuellen Dateiverzeichnis ab, d.h. in dem Dateiverzeichnis, aus dem der Compilerlauf gestartet wird.
Mit der Option -o
(siehe "Allgemeine Optionen") lässt sich als Ausgabeziel neben einem anderen Dateinamen auch ein anderes Dateiverzeichnis auswählen. Dies kann ein Dateiverzeichnis im lokalen POSIX-Dateisystem sein oder ein Dateiverzeichnis in einem eingehängten Dateisystem auf einem fernen Rechner. Dabei ist zu beachten, dass auf UNIX-Rechnern oder PCs nur Dateien mit Textdaten sinnvoll weiterverarbeitet werden können, also nur expandierte Quellprogramme („.i“-Dateien) und Listendateien („.lst“-Dateien).
Das Ausgabe-Codeset der Dateien (ASCII oder EBCDIC) richtet sich nach dem Codeset des Ziel-Dateisystems, wenn die Umgebungsvariable IO-CONVERSION den Wert YES hat (siehe Abschnitte „Umgebungsvariablen" und „Unterstützung von Dateisystemen in ASCII" im Handbuch „C-Bibliotheksfunktionen“ [2] ).
Wie Zeichen und Zeichenketten im Ablaufcode abgelegt werden, wird durch die Option-K literal_encoding_...
(siehe "Gemeinsame Frontend-Optionen in C und C++") gesteuert.