AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim Compilieren mit MSBuild

Ein Thema von ADelph · begonnen am 20. Apr 2017 · letzter Beitrag vom 20. Apr 2017
Antwort Antwort
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 10:27
Der Compiler kann Symbole, deren Gesamtlänge 255 überschreitet nicht verarbeiten (Parameter -D).
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 10:37
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 10:41
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (20. Apr 2017 um 10:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 10:52
In diesem Fall irrt die Doku offenbar
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ADelph

Registriert seit: 10. Aug 2009
97 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 12:07
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...'.
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
601 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 12:20
Zum Thema cdd32 in der Batchdatei:

Ich habe vor Jahren verschiedene Programmversionen aus einem Source per Batchdatei erzeugen lassen und dabei die Befehlszeile dcc32 die im Radstudio angezeigt wird eben mehrfach angepasst kopiert per Batchdatei ausgeführt.

Der Eintrag einer einzigen Compilervariante sah in etwa so aus:

Zitat:
"c:\program files (x86)\embarcadero\rad studio\7.0\bin\dcc32.exe" -$R+ --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;Db iProcs=BDE;DbiErrs=BDE -DDEBUG;madExcept;x-Fulldebugmode;x-Logmemoryleakdetailtofile;SQLx -I"c:\program files (x86)\embarcadero\rad studio\7.0\lib\DE";"C:\Delphicomponenten\TStringal igngrid 2010";"C:\Delphicomponenten\Virtual Treeview\Source";"C:\Delphicomponenten\TCPort 4.00\source";C:\Delphicomponenten\tXLSFile;"C:\Del phicomponenten\Devicechange Komponente";"C:\Delphicomponenten\ICS Mail\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010\compon";"C:\Delphicomponenten\Overbyte V7\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010";"C:\Delphicomponenten\ICS Mail\Delphi";"C:\Delphicomponenten\Overbyte V7\Delphi";"C:\Delphicomponenten\ICS Mail\Delphi\Internet";"c:\program files (x86)\embarcadero\rad studio\7.0\lib";"C:\Users\sko\Documents\RAD Studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Lib\Indy10";"C:\Users\Public\Documents\ RAD Studio\7.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\7.0\include";"c:\program files (x86)\embarcadero\rad studio\7.0\RaveReports\Lib";C:\madCollection\madBa sic\BDS7;C:\madCollection\madDisAsm\BDS7;C:\madCol lection\madExcept\BDS7;C:\madCollection\madExcept\ ..\Plugins;C:\madCollection\madRemote\BDS7;C:\madC ollection\madKernel\BDS7;C:\madCollection\madCodeH ook\BDS7;C:\madCollection\madSecurity\BDS7;C:\madC ollection\madShell\BDS7 -LE"C:\Users\Public\Documents\RAD Studio\7.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\7.0\Dcp" -NB"C:\Users\Public\Documents\RAD Studio\7.0\Dcp" -O"C:\Delphicomponenten\TStringaligngrid 2010";"C:\Delphicomponenten\Virtual Treeview\Source";"C:\Delphicomponenten\TCPort 4.00\source";C:\Delphicomponenten\tXLSFile;"C:\Del phicomponenten\Devicechange Komponente";"C:\Delphicomponenten\ICS Mail\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010\compon";"C:\Delphicomponenten\Overbyte V7\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010";"C:\Delphicomponenten\ICS Mail\Delphi";"C:\Delphicomponenten\Overbyte V7\Delphi";"C:\Delphicomponenten\ICS Mail\Delphi\Internet";"c:\program files (x86)\embarcadero\rad studio\7.0\lib";"C:\Users\sko\Documents\RAD Studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Lib\Indy10";"C:\Users\Public\Documents\ RAD Studio\7.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\7.0\include";"c:\program files (x86)\embarcadero\rad studio\7.0\RaveReports\Lib";C:\madCollection\madBa sic\BDS7;C:\madCollection\madDisAsm\BDS7;C:\madCol lection\madExcept\BDS7;C:\madCollection\madExcept\ ..\Plugins;C:\madCollection\madRemote\BDS7;C:\madC ollection\madKernel\BDS7;C:\madCollection\madCodeH ook\BDS7;C:\madCollection\madSecurity\BDS7;C:\madC ollection\madShell\BDS7 -R"c:\program files (x86)\embarcadero\rad studio\7.0\lib\DE";"C:\Delphicomponenten\TStringal igngrid 2010";"C:\Delphicomponenten\Virtual Treeview\Source";"C:\Delphicomponenten\TCPort 4.00\source";C:\Delphicomponenten\tXLSFile;"C:\Del phicomponenten\Devicechange Komponente";"C:\Delphicomponenten\ICS Mail\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010\compon";"C:\Delphicomponenten\Overbyte V7\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010";"C:\Delphicomponenten\ICS Mail\Delphi";"C:\Delphicomponenten\Overbyte V7\Delphi";"C:\Delphicomponenten\ICS Mail\Delphi\Internet";"c:\program files (x86)\embarcadero\rad studio\7.0\lib";"C:\Users\sko\Documents\RAD Studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Lib\Indy10";"C:\Users\Public\Documents\ RAD Studio\7.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\7.0\include";"c:\program files (x86)\embarcadero\rad studio\7.0\RaveReports\Lib";C:\madCollection\madBa sic\BDS7;C:\madCollection\madDisAsm\BDS7;C:\madCol lection\madExcept\BDS7;C:\madCollection\madExcept\ ..\Plugins;C:\madCollection\madRemote\BDS7;C:\madC ollection\madKernel\BDS7;C:\madCollection\madCodeH ook\BDS7;C:\madCollection\madSecurity\BDS7;C:\madC ollection\madShell\BDS7 -U"c:\program files (x86)\embarcadero\rad studio\7.0\lib\DE";"C:\Delphicomponenten\TStringal igngrid 2010";"C:\Delphicomponenten\Virtual Treeview\Source";"C:\Delphicomponenten\TCPort 4.00\source";C:\Delphicomponenten\tXLSFile;"C:\Del phicomponenten\Devicechange Komponente";"C:\Delphicomponenten\ICS Mail\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010\compon";"C:\Delphicomponenten\Overbyte V7\Delphi\Vc32";"C:\Delphicomponenten\TEmail 2010";"C:\Delphicomponenten\ICS Mail\Delphi";"C:\Delphicomponenten\Overbyte V7\Delphi";"C:\Delphicomponenten\ICS Mail\Delphi\Internet";"c:\program files (x86)\embarcadero\rad studio\7.0\lib";"C:\Users\sko\Documents\RAD Studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Imports";"c:\program files (x86)\embarcadero\rad studio\7.0\Lib\Indy10";"C:\Users\Public\Documents\ RAD Studio\7.0\Dcp";"c:\program files (x86)\embarcadero\rad studio\7.0\include";"c:\program files (x86)\embarcadero\rad studio\7.0\RaveReports\Lib";C:\madCollection\madBa sic\BDS7;C:\madCollection\madDisAsm\BDS7;C:\madCol lection\madExcept\BDS7;C:\madCollection\madExcept\ ..\Plugins;C:\madCollection\madRemote\BDS7;C:\madC ollection\madKernel\BDS7;C:\madCollection\madCodeH ook\BDS7;C:\madCollection\madSecurity\BDS7;C:\madC ollection\madShell\BDS7 -K00400000 -GD -NO"C:\Users\Public\Documents\RAD Studio\7.0\Dcp" Projekt.dpr
da gibt es scheinbar keinerlei Größenbeschränkungen!

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.960 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 12:33
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...'.
Du musst die .dpr benutzen. Die dcc32.exe kann mit der .dproj nix anfangen.

da gibt es scheinbar keinerlei Größenbeschränkungen!
Doch, aber bei 4096 Zeichen oder so. Das dürfte auch der Grund für diese erhöhte Beschränkung bei aktuellen Delphiversionen sein.

In diesem Fall irrt die Doku offenbar
Die Doku stimmt schon. Das zusätzliche Zeichen ist das Semikolon zur Trennung.

Wie würde der kürzeste Aufruf von dcc32 im Batch aussehen können, wenn ich z.B. vorher rsvars.bat aufgerufen habe?
Du musst da die Pfade mit angeben, deshalb ist das nicht so einfach.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 12:59
Und es wird immer besser :
Delphi-Quellcode:
program Doesitcompile;

{$APPTYPE CONSOLE}

uses
  SysUtils;

begin
  try
  // {$define ABCD-EFGH} // Output: ABCD-EFGH, ABCD
  // defined within Options // Output: ABCD-EFGH, ABCD, EFHG
  {$ifdef ABCD-EFGH}
  writeln('ABCD-EFGH');
  {$endif}
  {$ifdef ABCD}
  writeln('ABCD');
  {$endif}
  {$ifdef EFGH}
  writeln('EFGH');
  {$endif}
  Readln;
end.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#9

AW: Fehler beim Compilieren mit MSBuild

  Alt 20. Apr 2017, 14:02
In diesem Fall irrt die Doku offenbar
Die Doku stimmt schon. Das zusätzliche Zeichen ist das Semikolon zur Trennung.
Ja, jetzt wo du es sagst, kann ich das auch so interpretieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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-2025 by Thomas Breitkreuz