![]() |
Problem mit FPC Define
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
es geht mal wieder um ![]() Freundlicherweise hat mir jemand mittels Pull Request verbesserten FPC Support spendiert (wer mag darf das testen sobald es im Entwicklungszweig ist, was aber gerade ein Problem ist...). Dazu hat er auch in der Include Datei die diverse Einsterllungen Regelt Erweiterungen vorgenommen, die jetzt aber dazu führen, dass es in Delphi nicht mehr compiliert :-(. Ich verstehe nur nicht warum, denn seine Erweiterungen sind in einem {$IFDEF FPC} Block. Warum kümmert sich der Delphi 11.3 Compiler überhaupt um den Inhalt dieses Blocks? Will der plötzlich behaupten, er sei FPC kompatibel? :o Im Anhang die Include Datei (iin .txt umbenannt, da .inc hier scheinbar nicht erlaubt). Evtl. kann ja mal jemand einen Blick drauf werfen. Um es nachzustellen sollte es reichen den Entwicklungszweig runterzuladen und die iclude Datei in den Source Unterordner zu kopieren. Dann das Projekt aus dem Install Ordner mal ausführen, die IDE neu starten und die Projektgruppe unter Source öffnen. Dort das DEC60 Projekt versuchen zu compilieren. => wie bekomme ich das gefixt? Grüße TurboMagic |
AW: Problem mit FPC Define
Wenn man schon legacyifend nutzt, dann muss das auch überall getan werden, einige stellen innerhalb des fehlerhaften Teils taten dies nicht (scheinbar kann FPC da auch inzwischen mit nem endif umgehen). Außerdem scheint es den Delphi Compiler hier ein bisschen aus den Socken zu hauen, dass man direkt FPC_FULLVERSION checkt, ein zusätzliches declared behebt das.
Ob das jetzt unter FPC kompiliert? Kein Plan, war nicht meine Aufgabe :mrgreen:
Delphi-Quellcode:
//------------------------------------------------------------------------------
// FPC v2.x support (Experimental) //------------------------------------------------------------------------------ {$IFDEF FPC} {$UNDEF DELPHIORBCB} // fpc supports assembler //{$DEFINE PUREPASCAL} {$DEFINE NATIVEINT_UNDEFINED} {$IF declared(FPC_FULLVERSION) and (FPC_FULLVERSION >= 30300)} {$DEFINE HAVE_LAMBDAS} {$IFEND} // use compatibility mode {$MODE DELPHI} {$IFDEF HAVE_LAMBDAS} {$modeswitch functionreferences} {$modeswitch anonymousfunctions} {$ENDIF} {$DEFINE HAVE_ASSIGN_ARRAY} // defines for Mac OS X {$IFDEF DARWIN} {$DEFINE MACOS} {$DEFINE ALIGN_STACK} {$ENDIF} // define delphi-style CPU-width {$ifdef CPU64} {$define CPU64BITS} {$else} {$if defined(CPU32) } {$define CPU32BITS} {$ifend}{$endif} {$ASMMODE intel} {$ELSE} // assume delphi have "reference to" feature {$define HAVE_LAMBDAS} {$ENDIF FPC} |
AW: Problem mit FPC Define
Hallo,
danke für diese Arbeiten. Schaue ich mir heute Nachmittag an. Du hast getan, was du konntest. Um FPC Kompatibilität sollen sich andere kümmern. Frage: ist das, was den Delphi Compiler aus den Socken hat einen Report Wert, sprich, dass es mal geändert wird? Grüße TurboMagic |
AW: Problem mit FPC Define
Hallo,
so, ich hab das jetzt alles gerade gezogen. Bin jetzt nicht der IFEND usw. Eperte, habe aber rausgefunden dass sich das jetzt fast überall wo der andere was beigetragen hat durchgezogen hat. Hab' es überall wieder auf ENDIF umgebaut wo es den Compiler gestört hat. Es compiliert und läuft jetzt wieder unter Delphi. => so gerne ich es FPC kompoatibel halten will so wenig weiß ich von FPC und so wenig Zeit hab' ich auch noch dafür. Es wäre echt toll, wenn jemand der FPC besser kennt sich die Sache mal anschauen könnte und einen Vorschlag macht wie es so gerade zu ziehen ist, dass es beide Compiler zufrieden stellt. Grüße TurboMagic @Stevie: du stehst jetzt auch in der Notices.txt drin, zumindest mal im Development Zweig ;-) Damit kann ich dir danke sagen. :-) |
AW: Problem mit FPC Define
"Normal" war es eigentlich mal ganz "einfach" gedacht
{$IFDEF} hatte das {$ENDIF} drum bekam {$IF} das {$IFEND}, damit mußte auch keine inaktive Verschachtelung aufgelöst werden. {$IFDEF ConditionalExpression} ging ging einfach blind bis zum nächsten {$ENDIF} und die womöglich unbekannten {$IFEND} wurde ignoriert. |
AW: Problem mit FPC Define
Eigentlich sind ja Pull Requests dafür da, dass man das erstmal durchtestet, bevor man sie merged und damit was kaputt macht. :wink:
Und dann hätte man die Verantwortlichkeit auch einfach an den PR Author delegieren können, bis es funktioniert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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