Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Aufruf-Syntax und allgemeine Regeln

&pagelevel(3)&pagelevel

{ cc | c11 | CC } { option  | operand  } ...

oder

c89 [ option ]... operand ...

Die Unterschiede zwischen den cc/c11/c89/CC-Kommandos sind unten zusammengefasst.

Kommandos cc, c11, c89, CC

cc

Wenn der Compiler mit cc aufgerufen wird, arbeitet er als C-Compiler. Als Sprachmodus wird der letzte unterstützte C-Sprachmodus voreingestellt. In dieser Version des Compilers ist C11 voreingestellt (siehe Option -X 2011, "Optionen zur Auswahl des Sprachmodus"). Dies kann sich in zukünftigen Compiler-Versionen ändern.
Optionen und Operanden können in der Kommandozeile gemischt angegeben werden. -L dvz wird im Unterschied zu dem c89-Kommandos als Operand interpretiert (siehe -L und Option --, "Allgemeine Optionen").

c11

Wenn der Compiler mit c11 aufgerufen wird, arbeitet er als C-Compiler. Als Sprachmodus ist C11 voreingestellt (siehe Option -X 2011, "Optionen zur Auswahl des Sprachmodus").

Optionen und Operanden können in der Kommandozeile gemischt angegeben werden. -L dvz wird im Unterschied zu dem c89-Kommandos als Operand interpretiert (siehe -L und Option --, "Allgemeine Optionen").

c89

Wenn der Compiler mit c89 aufgerufen wird, arbeitet er als C-Compiler. Als Sprachmodus ist C89 voreingestellt (siehe Option -X 89, "Optionen zur Auswahl des Sprachmodus").
Die gemischte Angabe von Optionen und Operanden in der Kommandozeile ist nicht erlaubt. Die Reihenfolge „erst Optionen, dann Operanden“ muss eingehalten werden. -L dvz wird im Unterschied zu den cc/CC-Kommandos als Option interpretiert (siehe -L , und Option --, "Allgemeine Optionen").

CC

Wenn der Compiler mit CC aufgerufen wird, arbeitet er als C++-Compiler. Als Sprachmodus wird der letzte unterstützte C++-Sprachmodus voreingestellt. In dieser Version des Compilers ist C++ 2020 voreingestellt (siehe Option -X 2020, "Optionen zur Auswahl des Sprachmodus").
Optionen und Operanden können in der Kommandozeile gemischt angegeben werden. -L dvz wird im Unterschied zu dem c89-Kommando als Operand interpretiert (siehe -L und Option --, "Allgemeine Optionen").

Optionen

Keine option angegeben

Wenn der Quellcode syntaktisch korrekt ist und alle offenen Referenzen aufgelöst werden, erstellt der Compiler eine ausführbare Datei a.out mit dem ablauffähigen Programm. Nur wenn mindestens zwei Quelldateien oder zusätzlich zu einer Quelldatei eine Objektdatei (.o-Datei) angegeben werden, speichert der Compiler den Objektcode zu den einzelnen Quelldateien zusätzlich in gleichnamigen .o-Dateien ab.
Bei Angabe nur einer Quelldatei datei .c steht nach dem Compilerlauf keine Objektdatei datei .o zur Verfügung, da diese dann nur temporär angelegt und anschließend gelöscht wird; eine ggf. vor dem Compilerlauf vorhandene Objektdatei datei .o wird ebenfalls gelöscht.

option

Durch Angabe von Optionen im Compiler-Aufruf können Sie den Ablauf steuern und beeinflussen, mit welchen Argumenten die Programme für die einzelnen Übersetzungsphasen versorgt werden.

Mit Optionen können Sie den Compiler auch veranlassen, nur einen Teil der Übersetzungsphasen durchzuführen (siehe "Optionen zur Auswahl von Übersetzungsphasen"). Wenn der Übersetzungsprozess nicht vollständig durchgeführt wird, ignoriert der Compiler alle Optionen, die sich auf nicht durchlaufene Übersetzungsphasen beziehen. Wenn mehrere Optionen zur Auswahl von Übersetzungsphasen angegeben werden, stoppt der Compiler nach der frühesten Phase.

Eine Option ist immer genau ein Buchstabe und wird durch einen führenden Bindestrich („-“) gekennzeichnet.

Mehrere Optionen können auch gruppiert, d.h. hinter einem einzigen Bindestrich ohne trennende Leerzeichen angegeben werden, wenn sie keine Argumente besitzen (z.B. kann statt -V -c auch -Vc geschrieben werden).

Bei Optionen mit Argumenten wird gemäß dem XPG4-Standard zwischen der Option und ihrem Argument ein Leerzeichen geschrieben. Bei diesem Compiler ist die standardkonforme Schreibweise aus Kompatibilitätsgründen zwar nicht zwingend (z.B. wird statt -o hello auch -ohello akzeptiert), jedoch unbedingt empfehlenswert.

Bei Argumenten, die Trennzeichen (: oder ,) oder das Gleichheitszeichen (=) enthalten, ist kein Leerzeichen vor und nach diesen Zeichen erlaubt.

Beispiele


-D MAKRO = 1     verboten
-D MAKRO=1       erlaubt
-R limit,  20    verboten
-R limit,20      erlaubt


Bei mehrmaliger Angabe der gleichen Option mit widersprüchlichen Argumenten (z.B. -K at und -K no_at) gilt die in der Kommandozeile zuletzt angegebene Option.

Dem Compiler unbekannte Optionen, d.h. Optionen, die nach dem Bindestrich („-) mit einem unbekannten Buchstaben beginnen, werden ignoriert. Es wird eine entsprechende Warnungsmeldung ausgegeben. Wenn zwischen der unbekannten Option und einem eventuellen Argument ein Leerzeichen steht, wird sie als Option ohne Argument interpretiert.

Optionen mit unbekannten Argumenten werden ignoriert, und es wird eine entsprechende Warnungsmeldung ausgegeben.

Besondere Eingaberegeln für die Option -K

-K arg1[,arg2...]

Mit der -K-Option lassen sich ein oder mehrere, jeweils durch ein Komma voneinander getrennte Argumente angeben. Vor oder nach dem Komma darf kein Leerzeichen geschrieben werden.
Mehrere -K-Optionen mit jeweils einem Argument haben die gleiche Wirkung wie eine -K-Option mit mehreren, durch Kommas voneinander getrennten Argumenten. Die mit der -K-Option angegebenen Argumente können in Groß- und/oder Kleinbuchstaben geschrieben werden (z.B. haben die Argumente UCHAR, uchar, Uchar etc. die gleiche Bedeutung). Bei widersprüchlichen Angaben (z.B. -K uchar und -K schar) wird ohne Warnungsmeldung die letzte Angabe genommen.

Operanden

Zur Kategorie der „Operanden“ zählen:

  • die Namen von Eingabedateien datei.suffix

  • die Binder-Optionen -l x und -l BLSLIB

  • nur bei den cc/c11/CC-Kommandos zusätzlich die Binder-Option -L dvz

Der Compiler verarbeitet zuerst alle Optionen und dann die Operanden, und zwar in der Reihenfolge, in der sie in der Kommandozeile stehen.
Nach Angabe der Option -- (beendet die Eingabe der Optionen) werden alle folgenden Argumente in der Kommandozeile als Operanden interpretiert, auch wenn sie mit einem „-“-Zeichen beginnen (siehe Option --, "Allgemeine Optionen").

datei.suffix

ist der Name einer Eingabedatei.

Der Compiler schließt aus der Endung des Dateinamens auf den Dateiinhalt und führt die jeweils erforderlichen Übersetzungsschritte aus. Der Dateiname muss daher ein Suffix enthalten, das zum Dateiinhalt passt. Die möglichen Suffixe zur Kennzeichnung von Quelldateien hängen davon ab, ob der Compiler mit den Kommandos cc/c11/ c89 (C-Modus) oder mit CC (C++-Modus) aufgerufen wird.

Im Einzelnen gibt es folgende Möglichkeiten:


c, C

C-Quellcode (cc, c11c89) oder C++-Quellcode (CC) vor dem Präprozessorlauf

cpp, CPP, cxx, CXX, cc, CC, c++, C++


C++-Quellcode vor dem Präprozessorlauf (CC)

i

C-Quellcode (ccc11, c89) nach dem Präprozessorlauf

I

C++-Quellcode nach dem Präprozessorlauf (CC)

o

Objektdatei

a

statische Bibliothek mit Objektdateien, erzeugt mit dem Dienstprogramm ar.

Zusätzlich zu den o.g. Suffixen können mit der Option -Y F (siehe "Allgemeine Optionen") benutzereigene Suffixe definiert werden, die dann ebenfalls von den einzelnen Compilerkomponenten erkannt werden.

Dateinamen ohne oder mit einem unbekannten Suffix werden ohne Warnungsmeldung an den Binder weitergereicht.

Die Angabe mindestens einer Eingabedatei datei . suffix oder einer Bibliothek in der Form -l x pro Compileraufruf ist erforderlich.

Wenn mehrere Eingabedateien angegeben werden, müssen diese nicht vom gleichen Typ sein: Es können in demselben Compileraufruf Quelldateien und Objektdateien angegeben werden. Bei Objektdateien und Bibliotheken ist die Reihenfolge und die Position in der Kommandozeile für den Bindevorgang wichtig.

-L dvz

-L dvz ist nur bei Aufruf des Compilers mit den Kommandos cc, c11 und CC ein Operand. Mit dvz kann ein zusätzliches Dateiverzeichnis angegeben werden, in dem der Binder nach den mit der -l Option angegebenen Bibliotheken suchen soll (weitere Einzelheiten siehe "Binder-Optionen").

-l x

Dieser Operand veranlasst den Binder, nach Bibliotheken mit den Namen lib x .a zu suchen (weitere Einzelheiten siehe „Binder-Optionen“).

-l BLSLIB

Dieser Operand veranlasst den Binder, PLAM-Bibliotheken zu durchsuchen, die mit den Shell-Umgebungsvariablen BLSLIBnn (00 <= nn <= 99) zugewiesen wurden (weitere Einzelheiten siehe „Binder-Optionen“).

Exit-Status

0

normale Beendigung des Compilerlaufs; keine Errors, aber ggf. Notes und Warnings

1

normale Beendigung des Compilerlaufs; mit Errors

2

abnormale Beendigung des Compilerlaufs; Auftreten eines Fatal Errors