![]() |
Bedingte Compilierung macht Probleme
Plötzlich, seit eben gerade.
Delphi 11.3, keine Updates am System, nichts außergewöhnliches passiert, programmiere/compiliere täglich die aktuellen Projekte (sind mitten in der Entwicklungsarbeit) Hier das Symptom: Konsolenanwendung ein Ausschnitt aus den "uses"
Delphi-Quellcode:
In der IDE ist die untere Zeile hellgrau. Also alles richtig.
{$IFDEF CONSOLE}
sng.ServerApp, {$ELSE} sng.ServiceApp, {$ENDIF} Der Compiler geht aber in den ELSE-Zweig und will eine nicht vorhanden Unit laden. Das Projekt ist schon ewig alt und nur eins von vielen gleicher Machart. Heute vormittag war noch alles ok. Compilieren, Erzeugen, alles gut. Jetzt geht es nicht mehr. Klar, Neustart schon 2 mal gemacht. Ist hier vielleicht irgendwas in der IDE Konfig zerschossen? Tipps? Viele Grüße und Danke Thomas |
AW: Bedingte Compilierung macht Probleme
Hallo,
kopier den Inhalt mal in den Editor (Notepad) und achte auf "komische" Zeilenumbrüche. Das hilft beim Debuggen, wenn mal Code aus dem Netz kopiert wurde. Ja, ich weiß, dass hier das Compilieren streikt. Ansonsten, alles ausklammern und Zeile für Zeile wieder rein, bis der Fehler auftritt. |
AW: Bedingte Compilierung macht Probleme
Er erkennt keinerlei Defines.
Habe mal von Hand !! {§DEFINE CONSOLE} eingebaut. Dann geht dieser Block. Aber es gibt im Programm noch viele weitere Defines. Nun ist er beim nächsten hängengeblieben. Die IDE kennt alle Defines, aber der Compiler nicht. System läuft in einer VM und die habe ich schon neu gestartet. Vielleicht mal alles neu starten? Aber was liest der Compiler ein bzw. wie erkennt er "Dinge" für die bedingte Compilierung? |
AW: Bedingte Compilierung macht Probleme
Muss am Projekt liegen.
In einer neuen Konsolenanwendung
Delphi-Quellcode:
funktioniert alles
writeln( 'lasdkjgjadäölsdjgövajldkjg');
{$IFDEF CONSOLE} writeln( '--------- CONSOLE ---------'); {$ELSE} writeln( '--------- KEINE Console ---------'); xyz {$ENDIF} sleep(2000); |
AW: Bedingte Compilierung macht Probleme
Es gibt zwei Stellen, an denen eine Konsolenanwendung eingestellt wird: das
Delphi-Quellcode:
in der dpr und in den Projektoptionen unter Linken.
{$APPTYPE CONSOLE}
|
AW: Bedingte Compilierung macht Probleme
Zitat:
Ich habe die dproj-Datei aus Subversion auf einen Stand von vor einer Woche zurückgesetzt. Damit geht es auch nicht. |
AW: Bedingte Compilierung macht Probleme
Neue Erkenntnisse.
Andere, selbst definierte, Defines funktionieren. Wenn ich in den betroffenen 5 Units das {$DEFINE CONSOLE} manuell hinzufüge, kann ich wieder compilieren. Es ist wirklich nur "CONSOLE", was plötzlich fehlt. --pause Ich habe was gefunden. Ich hatte heute vormittag zum debuggen "Mit Debug DCU's" ausgeschaltet. Jetzt habe ich es wieder eingeschaltet und es funktioniert. Was hat "Mit Debug DCU's" mit der bedingten Compilierung zu tun?? |
AW: Bedingte Compilierung macht Probleme
Ok, der Nachmittag ist hinüber.
Ich habe den Fehler gefunden. Es sind ca. 70-80 units eingebunden. Ich habe mir alle Unterschiede des Tages angesehen. (zu unserem Source-Sicherungssystem) In einer "sehr tief liegenden" Unit war dieser Code enthalten: (siehe unten) (Und ich bin glücklich mit Subversion zu arbeiten und täglich die Daten einzuchecken.) Wo kommt der her? Kann man den durch eine Tastenkombination versehendlich erstellen?
Delphi-Quellcode:
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N-,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$MINSTACKSIZE $00004000} {$MAXSTACKSIZE $00100000} {$IMAGEBASE $00400000} {$APPTYPE GUI} {$WARN SYMBOL_DEPRECATED ON} {$WARN SYMBOL_LIBRARY ON} {$WARN SYMBOL_PLATFORM ON} {$WARN SYMBOL_EXPERIMENTAL ON} {$WARN UNIT_LIBRARY ON} {$WARN UNIT_PLATFORM ON} {$WARN UNIT_DEPRECATED ON} {$WARN UNIT_EXPERIMENTAL ON} {$WARN HRESULT_COMPAT ON} {$WARN HIDING_MEMBER ON} {$WARN HIDDEN_VIRTUAL ON} {$WARN GARBAGE ON} {$WARN BOUNDS_ERROR ON} {$WARN ZERO_NIL_COMPAT ON} {$WARN STRING_CONST_TRUNCED ON} {$WARN FOR_LOOP_VAR_VARPAR ON} {$WARN TYPED_CONST_VARPAR ON} {$WARN ASG_TO_TYPED_CONST ON} {$WARN CASE_LABEL_RANGE ON} {$WARN FOR_VARIABLE ON} {$WARN CONSTRUCTING_ABSTRACT ON} {$WARN COMPARISON_FALSE ON} {$WARN COMPARISON_TRUE ON} {$WARN COMPARING_SIGNED_UNSIGNED ON} {$WARN COMBINING_SIGNED_UNSIGNED ON} {$WARN UNSUPPORTED_CONSTRUCT ON} {$WARN FILE_OPEN ON} {$WARN FILE_OPEN_UNITSRC ON} {$WARN BAD_GLOBAL_SYMBOL ON} {$WARN DUPLICATE_CTOR_DTOR ON} {$WARN INVALID_DIRECTIVE ON} {$WARN PACKAGE_NO_LINK ON} {$WARN PACKAGED_THREADVAR ON} {$WARN IMPLICIT_IMPORT ON} {$WARN HPPEMIT_IGNORED ON} {$WARN NO_RETVAL ON} {$WARN USE_BEFORE_DEF ON} {$WARN FOR_LOOP_VAR_UNDEF ON} {$WARN UNIT_NAME_MISMATCH ON} {$WARN NO_CFG_FILE_FOUND ON} {$WARN IMPLICIT_VARIANTS ON} {$WARN UNICODE_TO_LOCALE ON} {$WARN LOCALE_TO_UNICODE ON} {$WARN IMAGEBASE_MULTIPLE ON} {$WARN SUSPICIOUS_TYPECAST ON} {$WARN PRIVATE_PROPACCESSOR ON} {$WARN UNSAFE_TYPE OFF} {$WARN UNSAFE_CODE OFF} {$WARN UNSAFE_CAST OFF} {$WARN OPTION_TRUNCATED ON} {$WARN WIDECHAR_REDUCED ON} {$WARN DUPLICATES_IGNORED ON} {$WARN UNIT_INIT_SEQ ON} {$WARN LOCAL_PINVOKE ON} {$WARN MESSAGE_DIRECTIVE ON} {$WARN TYPEINFO_IMPLICITLY_ADDED ON} {$WARN RLINK_WARNING ON} {$WARN IMPLICIT_STRING_CAST ON} {$WARN IMPLICIT_STRING_CAST_LOSS ON} {$WARN EXPLICIT_STRING_CAST OFF} {$WARN EXPLICIT_STRING_CAST_LOSS OFF} {$WARN CVT_WCHAR_TO_ACHAR ON} {$WARN CVT_NARROWING_STRING_LOST ON} {$WARN CVT_ACHAR_TO_WCHAR ON} {$WARN CVT_WIDENING_STRING_LOST ON} {$WARN NON_PORTABLE_TYPECAST ON} {$WARN XML_WHITESPACE_NOT_ALLOWED ON} {$WARN XML_UNKNOWN_ENTITY ON} {$WARN XML_INVALID_NAME_START ON} {$WARN XML_INVALID_NAME ON} {$WARN XML_EXPECTED_CHARACTER ON} {$WARN XML_CREF_NO_RESOLVE ON} {$WARN XML_NO_PARM ON} {$WARN XML_NO_MATCHING_PARM ON} {$WARN IMMUTABLE_STRINGS OFF} |
AW: Bedingte Compilierung macht Probleme
Vielleicht kommt CONSOLE nicht als CompilerMagic vom Compiler kommt, sondern als DEFINE aus den Projektoptionen?
Ebenso wie die Define "DEBUG" und "RELEASE", welche in den jeweiligen OptionSets definiert sind, und rein garnichts mir dem "Name" der aktiven Config zu tun haben, was richtig Spaß macht, wenn sie dort mal falsch/garnicht drin stehen. :lol: |
AW: Bedingte Compilierung macht Probleme
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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