![]() |
DCC32 und redundantes {$I includefile.inc}
Ich versuche HeidiSQL und dessen abhängige Komponenten mit der Kommandozeile (dcc32.exe) zu kompilieren und habe folgendes Problem:
Eine Unit, in der ein
Delphi-Quellcode:
steht, referenziert in der USES Klausel eine andere Unit, die wiederum das gleiche
{$I SynEdit.inc}
Delphi-Quellcode:
enthält. Das erste "Include" macht keine Probleme, aber beim zweiten bekomme ich ein
{$I SynEdit.inc}
Zitat:
Ist die Meldung darauf zurückzuführen, daß ich in einem Include-File wiederum ein anderes Include-File einbinde (Verkettung)? Oder ist es ein generelles Problem mit der USE-Klausel? Zu erwähnen wäre noch, daß beide .INC Dateien nur Compiler-Direktiven enthält - hauptsächlich DEFINES und ein paar Schalter. |
Re: DCC32 und redundantes {$I includefile.inc}
Zitat:
Der Compiler bindet die inckludierten Dateien genau an der Stelle ein, wo der Include Befehl steht. Du kannst also auch den Inhalt der Include Datei kopieren und an der Stelle einfügen. Das ist für den Compiler das selbe. Man lagert gerne Compilerschalter in *.inc Dateien aus, da diese in einem Projekt manchmal in viele (alle) Dateien eingebunden werden. Es ist dann bei Änderungen an dem Inhalt der *.inc Datei sehr bequem, da nicht alle Dateien geändert werden müssen. Zur Fehlerdiagnose kannst Du ja mal den Inhalt direkt in die Unit einfügen (an genau der Stelle wo der include Befehl steht. Beim Compilieren sollte nun der gleiche Fehler auftreten. Vieleicht wird Dir dann klar warum der Fehler auftritt. Da ich weder HeidiSQL noch SynEdit kenne kann ich Dir nicht mehr helfen. |
Re: DCC32 und redundantes {$I includefile.inc}
Du hast mir schon geholfen! Die Includes in die Units einzupasten hat mir nun wenigstens die genauen Zeilennummern gebracht. Das Problem besteht allerdings weiterhin:
Zitat:
Delphi-Quellcode:
Wenn ich einige über diesem Block stehenden Kommentarzeilen entferne, ändert sich die Fehlermeldung. Es wird immer Zeile 512 angemeckert. Sieht nach irgendeinem Buffer-Limit o.ä. aus. Hmm..
{$IFDEF CPPB} {$DEFINE SYN_CPPB} {$ENDIF}
{$IFDEF CPPB_1} {$DEFINE SYN_CPPB_1} {$ENDIF} {$IFDEF CPPB_3} {$DEFINE SYN_CPPB_3} {$ENDIF} {$IFDEF CPPB_3_UP} {$DEFINE SYN_CPPB_3_UP} {$ENDIF} {$IFDEF CPPB_4} {$DEFINE SYN_CPPB_4} {$ENDIF} {$IFDEF CPPB_4_UP} {$DEFINE SYN_CPPB_4_UP} {$ENDIF} {$IFDEF CPPB_5} {$DEFINE SYN_CPPB_5} {$ENDIF} {$IFDEF CPPB_5_UP} {$DEFINE SYN_CPPB_5_UP} {$ENDIF} {$IFDEF CPPB_6} {$DEFINE SYN_CPPB_6} {$ENDIF} {$IFDEF CPPB_6_UP} {$DEFINE SYN_CPPB_6_UP} {$ENDIF} {$IFDEF DELPHI} {$DEFINE SYN_DELPHI} {$ENDIF} {$IFDEF DELPHI_2} {$DEFINE SYN_DELPHI_2} {$ENDIF} {$IFDEF DELPHI_2_UP} {$DEFINE SYN_DELPHI_2_UP} {$ENDIF} {$IFDEF DELPHI_3} {$DEFINE SYN_DELPHI_3} {$ENDIF} {$IFDEF DELPHI_3_UP} {$DEFINE SYN_DELPHI_3_UP} {$ENDIF} {$IFDEF DELPHI_4} {$DEFINE SYN_DELPHI_4} {$ENDIF} {$IFDEF DELPHI_4_UP} {$DEFINE SYN_DELPHI_4_UP} {$ENDIF} {$IFDEF DELPHI_5} {$DEFINE SYN_DELPHI_5} {$ENDIF} |
Re: DCC32 und redundantes {$I includefile.inc}
Zitat:
Das komische dabei ist, daß die SynEditMiscProcs.pas nicht die erste zu kompilierende Unit ist. Die 2 vorangehenden Units können kompiliert werden, enthalten aber genau die gleichen Direktiven an der gleichen Stelle: zwischen
Delphi-Quellcode:
und
UNIT bla;
Delphi-Quellcode:
Interface
|
Re: DCC32 und redundantes {$I includefile.inc}
Das Problem ist wohl schon mal bei Borland gemeldet worden:
![]() Workaround: Benutze den -Q Schalter. Obwohl das eigentlich nur "Quiet compile" bedeutet - eigentlich was anderes als "Fehler ignorieren" o.ä. ... Jedenfalls kompiliert es so mit dcc32.exe . Ich bekomme zwar leider keinen Output mehr und weiß dementsprechende nicht was er gerade macht, aber die DCUs werden jetzt erzeugt und eine Fehlermeldung gibt es auch nicht (Ich hoffe mal nicht daß der Compiler die wegen des Q-Schalters auch unterdrückt...). |
Re: DCC32 und redundantes {$I includefile.inc}
Zitat:
Mit Delphi 2005 wurde dieses Problem dann endlich behoben. Aber wenn das nun das selbe Problem ist, dann überschreibt der Compiler nun bei der Ausgabe nicht mehr "wichtige" Daten die für die Ausführung benötigt werden, sondern den Parser-Baum. |
Re: DCC32 und redundantes {$I includefile.inc}
Ich denke schon das es genau der gleiche Bug ist. Der Poster des Bugs schreibt auch u.a.:
Zitat:
|
Re: DCC32 und redundantes {$I includefile.inc}
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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