![]() |
Unterschiedliche Ergebnisse beim kompilieren, und Ursache
Ich hatte vor kurzen ein Problem gelöst, welches mich längere Zeit ratlos gemacht hatte:
Ich habe ein Projekt kompiliert, und folgende Ergebnisse erhalten: interner Compiler: 30MB externer Compiler: 60MB intern via CLI: 28MB MSBuild: 60MB Aus irgendwelchen Gründen waren die Ergebnisse unterschiedlich und ich habe recherchiert. Im Projekt ist JCLDebug integriert, das Plugin modifiziert das Kompilat. Als ich das per Kommandozeile nachgeholt hatte, sind die Dateien noch größer geworden (erwartbar). Über ein Diff habe ich gesehen, das sind irgendwelche anderen Debugger-Daten die integriert wurden. Die schienen aber keine Verwendung zu haben. Ich habe im nächsten Schritt alle Debugginginfos in der IDE abgeschaltet: ohne Erfolg, die Dateien blieben so groß obwohl das Debugging mit JCLDebug nicht mehr funktioniert (jedenfalls ohne Map/jdbg Datei im Verzeichnis). ich habe nochmal alles untersucht, und dabei ist mir eine alte cfg-Datei aufgefallen. Ich wusste, das das Compiler-Infos sind, ich dachte aber das diese Datei vor MSBuild-Zeiten verwendet wurde, und praktisch keinen Nutzen mehr hat. Aber ein löschen der Datei brachte sofort das gewünschte Kompilat, und ich habe folgendes herrausgefunden: Es war hier ein Schalter für TDS-Debug-Symbolen angeschaltet, welcher den Mehrinhalt verursachte. Also die Compilerschalter kann man in der Source, in den Optionen (somit in der DProj) und auch in besagter cfg setzen. Letztere wird aber nur vom externen Compiler/MSBuild ausgewertet. IDE-Plugins sollte man in diesem Zusammenhang auch argwöhnisch betrachten, die werden ja von externen Compilern nicht beachtet Mein Problem ist gelöst, aber zwei Fragen bleiben noch: -Ich dachte TDS funktioniert gar nicht mit 64-Bit Kompilaten (und das ist eins) -TDS ist doch eigentlich separiert, und nicht in die exe integriert - so dachte ich bißher Ich hoffe mit den Infos jemanden weitergeholfen zu haben, und vielleicht kann ja hier jemand die letzten beiden Fragen beantworten. Ich habe die Story etwas ausführlicher auf meiner Homepage hinterlegt: ![]() |
AW: Unterschiedliche Ergebnisse beim kompilieren, und Ursache
Der externe Compiler ist MSBuild.
MSBuild ruft letztendlich auch nur den DCC (CLI) auf. Wie rufst du das CLI auf? (Parameter bzw. cfg-Datei) Vergleich das mal mit der Kommandozeile des DCC, welcher vom Delphi/MSBuild ausgeführt wird. Ist das ein upgegradetes Projekt (DPROJ) von einem alten Delphi? TDS aka TurboDebuggerInfos können extern, aber auch intern sein. Egal ob extern oder intern, es ist eine Section in einer PE-Datei (EXE/DLL/BPL). |
AW: Unterschiedliche Ergebnisse beim kompilieren, und Ursache
Zitat:
Ich meinte oben den "echten" Compiler, also DCC64. Sorry für die missverständliche Ausdrucksweise, kann es aber oben nicht mehr bearbeiten :cry: Zitat:
Zitat:
Und wie oben bereits geschrieben: die "IDE Build Chain", welche nicht MSBuild ist, ignoriert die cfg und DCC32/DCC64 unterstützt natürlich auch keine IDE-Plugins. Und schreibt dazu aber auch nichts ins Meldungsfenster... Zitat:
Zitat:
(Geht grad mal wieder nicht, sonst hätte ich es hier verlinkt) Wenn ich in der Oberfläche mal in die Linker-Optionen gehe und 64bit auswähle dann wird die TDS-Option ausgeblendet. Also auch die Oberfläche sagt, das geht nicht mit 64Bit. DCC fügt also scheinbar nicht brauchbare Daten ein, wenn man es Ihm per Kommandozeile/cfg befiehlt. Ich sehe auch nur eine "TDS"-Option in den Einstellungen, und die erzeugt eine separate Datei... '(Ich gehe mal davon aus, das du die mit intern/extern separat/integriert meintest) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz