Nein.
Es gibt auch so schon immer zwei "Durchgänge".
Compiler und Linker.
Ein Pre-Compiler, wo wir uns einklinken können, wäre aber mal was Schönes.
Der Compiler nimmt den Quellcode, übersetzt ihn und optimiert ihn etwas.
Zum Schluß setzt der Linker alles zusammen und lässt eventuell noch paar Dinge weg.
Eine
Unit wird auch erstmal komplett kompiliert (zur
PAS ->
DCU),
der Ressource-Compiler nimmt sich die unkompilierten Ressourcen vor (RC -> RES)
und dann baut der Linker das zusammen. (
DCU/
DFM/RES -> EXE/
DLL/
BPL/...)
Der Linker lässt dabei ungenutzte Konstanten weg (fasst Doppelte zusammen) und auch die ungenutzten Prozeduren und Typen fliegen raus.
Dann noch die Offsets und Adressen anpassen, an die endgültigen Positionen.