Auch wenn dieses Thema schon fast 10 Jahre alt ist, erlaube ich mir, es noch einmal hervorzuholen.
Das hat mich nun doch sehr interessiert, und so versuchte ich es auch, nämlich mit Delphi 7 und XE2. Erkenntnisse:
- Es ist auch bei beiden genannten Delphis möglich, wenn auch bei letzterem wesentlich aufwendiger, mit deutlich mehr Verrenkungen.
- Der Kommandozeilenparameter -z scheint überflüssig zu sein, es funktioniert jedenfalls auch ohne diesen.
- Der größte Nachteil: Die DCUs sind größer als die mitglieferten, leider auch dann, wenn man versucht, die
RTTI (bei XE2) auszuschalten. Keine Ahnung, mit welchem Zaubercompilern Borland / Inprise / Codegear / Embarcadero kleinere DCUs erzeugen.
Wen es interessiert, der kann es sich unter Zuhilfenahme der o.g. Kommandozeile (vermutlich generell mit Administratorrechten) selbst zusammenbasteln, denn die dcc32 gibt alle im wahrsten Sinne des Wortes Fehlermeldungen aus, es wird das Fehlen von Dateien an bestimmten Orten bemängelt. Zum einen müssen an bestimmten Orten Projektdateien erstellt bzw. dorthin abgelegt werden, zum Beispiel solch eine wundersame "program.dpr" mit dem Inhalt:
, zum anderen auch in den Quellen weitere Dateien zusammengesucht werden. Ich brach es ab, als die system.dcu und sysinit.dcu erstellt waren, allerdings moserte dann dcc32 immer noch das Fehlen einer Projektdatei (sogar dann, als diese eindeutig vorhanden war), aber ich brach es eben ab, da Ziel erreicht wurde. Immerhin compilierte XE2 auch mit diesen selbsterstellten DCUs, und das Compilat war auf's Byte genau gleichgroß zum dem mit den mitglieferten DCUs erstellten.
Fazit: Es war einen Versuch wert, lohnte sich aber nicht.