Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Fehler beim Compilieren mit MSBuild (https://www.delphipraxis.net/192457-fehler-beim-compilieren-mit-msbuild.html)

ADelph 20. Apr 2017 08:30

Fehler beim Compilieren mit MSBuild
 
Moin,

sonderbar: ich habe ein Projekt, das sich normal in der IDE einfach fehler- und problemlos compilieren lässt. Klicke ich in den Optionen 'MSBuild extern für die Compilierung verwenden' an, dann erhalte ich den Fehler 'E2163: Zu viele bedingte Symbole'. Das ist ärgerlich, weil ich dieses Projekt - zusammen mit anderen - in einem Batch mit MSBuild erstellen wollte. Das gleiche Projekt in einer etwas anderen Variante (andere Bedingungen) kompiliert in beiden Fällen problemlos.

Ich könnte im Batch auch dcc32 nutzen, aber das kriege ich erstaunlicherweise gar nicht hin - mit den sonderbarsten Fehlermeldungen.

Hat jemand eine Idee, wie ich solch ein Projekt dennoch im Batch compilieren könnte? Fühle mich gerade wie der Ochs' vorm Tor...

Danke schon mal!

Ich nutze XE7

Union 20. Apr 2017 09:05

AW: Fehler beim Compilieren mit MSBuild
 
Wie sieht denn die Kommandozeile aus? Irgendwie musst Du die magische Grenze von 256 Symbolen wohl überschritten haben.

himitsu 20. Apr 2017 09:25

AW: Fehler beim Compilieren mit MSBuild
 
Ich glaub da verwechselst du etwas, denn dieses "Sysmbol" hat nichts mit den Symbolen (Chars/Zeichen) zu tun.

http://docwiki.embarcadero.com/RADSt...mbole_(Delphi)
http://docwiki.embarcadero.com/RADSt...mbols_(Delphi)


Bedingte Symbole sind z.B. {$IFDEF ...} oder auch {$L ...},
aber auch Variablen, Typen, die per {$DEFINE} erstelten Werte usw. bezeichnet der Compiler gern mal als Symbol.

Uwe Raabe 20. Apr 2017 09:48

AW: Fehler beim Compilieren mit MSBuild
 
Korrigier doch mal deine Links! Die schließende Klammer gehört mit in die URL.

jaenicke 20. Apr 2017 09:56

AW: Fehler beim Compilieren mit MSBuild
 
Zitat:

Zitat von ADelph (Beitrag 1368350)
Ich könnte im Batch auch dcc32 nutzen, aber das kriege ich erstaunlicherweise gar nicht hin - mit den sonderbarsten Fehlermeldungen.

Von mir gibt es hier ein Projekt dafür. Die aktuellen Delphiversionen müssten dort aber erst eingepflegt werden:
http://www.entwickler-ecke.de/topic_...0_41748,0.html
Bei Interesse kann ich mir das mal wieder anschauen.

Union 20. Apr 2017 10:27

AW: Fehler beim Compilieren mit MSBuild
 
Der Compiler kann Symbole, deren Gesamtlänge 255 überschreitet nicht verarbeiten (Parameter -D).

Uwe Raabe 20. Apr 2017 10:37

AW: Fehler beim Compilieren mit MSBuild
 
Zitat:

Zitat von Union (Beitrag 1368372)
Der Compiler kann Symbole, deren Gesamtlänge 255 überschreitet nicht verarbeiten (Parameter -D).

Wobei jedes Symbol in dieser 256(!) Byte großen Tabelle lediglich ein Byte beansprucht. Seit Berlin ist dies auf 4096 Byte erhöht worden.

Union 20. Apr 2017 10:41

AW: Fehler beim Compilieren mit MSBuild
 
Leider nein. Reproduzierbar (D2007):

Code:
dcc32.exe -D0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF;0123456789ABCDEF -I"c:\program files (x86)\codegear\rad studio\5.0\lib" --no-config Doesitcompile.dpr
Dies löst den Fehler aus. Es sind aber nur 17 Symbole, wohl aber mehr als 255 Zeichen von diesen belegt.

Zitat:

Jedes bedingte Symbol belegt bei der Speicherung im Bereich für bedingte Symbole 1 zusätzliches Byte
Zusätzlich ist hier aussschlaggebend. Da die Defines als Shortstring verarbeitet werden, ist wohl damit das Längenbyte gemeint.

Uwe Raabe 20. Apr 2017 10:52

AW: Fehler beim Compilieren mit MSBuild
 
In diesem Fall irrt die Doku offenbar :x

ADelph 20. Apr 2017 12:07

AW: Fehler beim Compilieren mit MSBuild
 
Moin,

das für mich Seltsame ist, dass es aus der IDE heraus klappt, aber nicht mit MSBuild, bzw. auch nicht, wenn ich die besagte Option in der IDE anklicke.

Ich hab' mal versucht die Kommandozeile, die die IDE erzeugt zu verwenden - das klappt aber nicht, u.a. weil die dann mehr als 255 Zeichen hat, was im Batch Probleme macht.

Wie würde der kürzeste Aufruf von dcc32 im Batch aussehen können, wenn ich z.B. vorher rsvars.bat aufgerufen habe? Z.B. dcc32 Test.dproj? Probiert hab ich das, aber das bringt nur Fehler wie 'Ungültiges Zeichen...'.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz