<sub class="descriptionSection">04-11-2024 04:30:pm // #Compiler // [[Programmierung]]</sub>
____
Der Sourcecode in C++ wird in mehreren Schritten in Maschinensprache (Bytecode, etc.) umgewandelt. Diese Schritte ähneln sich von Compiler zu Compiler, allerdings sind sie nie gleich (manche Compiler unterstützen extra Features).
> [!NOTE] Info
> Diese Schritte werden normalerweise alle vom Compiler automatisch ausgeführt und man muss nur noch die .out datei ausführen
## Präprozessor
Im Präprozessor Schritt wird im Quellcode einige Textbausteine (#Define und # Include). Außerdem werden Kommentare entfernt
DieserSchritt kann unter Linux per:
```
g++ -E quellcode.cpp
```
getrennt ausgeführt werden.
## Compiler
Aus dem präprozessor quellcode wird assembler code (Maschinen befehle) in lesbarer Form (sog. MNEMONICS) gemacht.
Dieser Schritt kann unter Linux so getrennt ausgeführt werden:
```
g++ -S quellcode.cpp
```
## Assembler
Der Assembler macht aus der Assembly datei eine "Objektdatei" in Maschinensprache (für CPU ausführbar)
```
g++ -c quellcode.cpp
```
## Linker
Der Linker erstellt am Ende das ausführbare Programm mit eingebauten Bibliotheken und anderen Objektdateien (also von Libraries, etc).
```
g++ -o programmname quellcode.cpp
```