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/)
-   -   unklare Definition von Compilerschalter (https://www.delphipraxis.net/182981-unklare-definition-von-compilerschalter.html)

Helmi 1. Dez 2014 17:43


unklare Definition von Compilerschalter
 
Hallo,

ich hab in einer Komponente folgenden Code:

Delphi-Quellcode:
{$ifdef LINUX}
  //irgend ein Code
{$endif}
{$ifdef WIN32}
  //irgend ein Code
{$endif}
Auf was bezieht sich das WIN32? - auf das installierte Windows (bei mir 64 bit) oder auf Installation von Delphi (XE2 scheint ja 32 bit zu sein)

himitsu 1. Dez 2014 17:47

AW: unklare Definition von Compilerschalter
 
IMMER auf den Compiler, also das Ziel, für welches er kompiliert.

Auf aktive Dinge kann man nachträglich (nach dem Kompilieren) natürlich nicht prüfen, also wie z.B. das akuelle Windows, wo das Programm läuft.

Helmi 1. Dez 2014 17:53

AW: unklare Definition von Compilerschalter
 
Zitat:

Zitat von himitsu (Beitrag 1281861)
IMMER auf den Compiler, also das Ziel, für welches er kompiliert.

Auf aktive Dinge kann man nachträglich (nach dem Kompilieren) natürlich nicht prüfen, also wie z.B. das akuelle Windows, wo das Programm läuft.

Danke! - macht irgendwie Sinn

Helmi 14. Dez 2014 19:08

AW: unklare Definition von Compilerschalter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

so richtig durchblicken tu ich mit diesen Compiler-Schalter nicht

Ich hab folgendes Problem:

Wie auf dem Bild zu sehen ist, ist zwar 32-Bit Windows aktiviert, im Code läuft er aber immer
in den Linux-Teil hinein (wenn ich mich durchstep).

Wie kann das sein? - Kann man das noch irgendwo einrichten?

Nebenbei bemerkt:
Der Code stammt aus einer Komponente (libnodave) und wurde in ein Package installiert, das aber
32-bit Windows ist

Stevie 15. Dez 2014 07:29

AW: unklare Definition von Compilerschalter
 
Die LINUX Direktive stammt noch aus Kylix Zeiten, soweit ich weiß und wird aktuell gar nicht gesetzt.
Daher glaube ich eher, dass dort in der Komponente irgendwo ein IFDEF nicht richtig zieht und das möglicherweise anschaltet.

himitsu 15. Dez 2014 08:00

AW: unklare Definition von Compilerschalter
 
Angeblich soll es "bald" wieder Linux geben, aber egal.

Was steht denn in Projektoption > Delphi-Compiler > Bedingungen, denn einige Defines werden dort definiert, wie z.B. das DEBUG.
Und hast du im Code mal nach
Delphi-Quellcode:
{$DEFINE
gesucht?

Helmi 15. Dez 2014 08:49

AW: unklare Definition von Compilerschalter
 
Zitat:

Zitat von himitsu (Beitrag 1283414)
Was steht denn in Projektoption > Delphi-Compiler > Bedingungen, denn einige Defines werden dort definiert, wie z.B. das DEBUG.

Dort ist nur DEBUG definiert - sonst nichts

Zitat:

Zitat von himitsu (Beitrag 1283414)
Und hast du im Code mal nach
Delphi-Quellcode:
{$DEFINE
gesucht?

ja - aber in den Units der Komponente gibt es zwar $DEFINE´s - aber keine die LINUX oder WIN32 lauten

himitsu 15. Dez 2014 09:35

AW: unklare Definition von Compilerschalter
 
Beim Debuggen sind die blauen Punkte (welche du dort mit abgeschnitten hast) auch in dem Linux-Define?

Es könnte zwar auch ein Bug im Delphi sein, aber das wäre Anderen doch auch aufgefallen? :gruebel:
Eigentlich sollten diese DEFINEs nur vom Compiler gesetzt werden, aber im Grunde kann die jeder beliebig ändern.

Delphi-Quellcode:
DEBUG;CONSOLE;MSWINDOWS;WIN32;WIN64;MACOS;MACOS32;IOS;ANDROID;LINUX;LINUX32;POSIX;POSIX32;EUREKALOG;EUREKALOG_VER6
in deine Projektoptionen oder als DEFINEs in alle deine Units und du kompilierst ein Programm, welches überall läuft. :stupid:

Helmi 15. Dez 2014 09:40

AW: unklare Definition von Compilerschalter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ja - es liegt im Linux-Define (siehe Bild)

himitsu 15. Dez 2014 09:57

AW: unklare Definition von Compilerschalter
 
Mir fällt grade ein: Selbst wenn Linux irgendwo "ausversehn" mit gesetzt/definiert wird, dann müsste doch WIN32 dennoch/auch definiert sein. :gruebel:

.dproj löschen und neu erstellen lassen?
bzw. mal in der .dproj mal nach LINUX suchen. (im Notepad öffnen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 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