$define / wo einstellen?

Für Fragen rund um die Ide und zum Debugger
Antworten
wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

$define / wo einstellen?

Beitrag von wolf_z »

Bisher habe ich mich damit beholfen, Compiler-Direktiven wie z.B. {$IFDEF WIN32} ... zu setzen, indem ich {$define WIN32} in den Quellcode und zwar in jede Unit einzeln reingeschrieben habe. Das wird mir aber zu aufwändig.

In Delphi kann man die Compiler-Direktiven zentral unter "Projektoptionen/Verzeichnisse/Bedingungen" für jedes Projekt zentral setzen. Ich hab mir aber schon die Finger wund gesucht in Lazarus und im Internet, um eine vergleichbare Maske zu finden.

Wo stellt man das in Lazarus zentral ein?

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: $define / wo einstellen?

Beitrag von theo »

In den Compilereinstellungen für's Projekt bei "Andere" in das grosse Feld was eintippen.
z.B. -dTest
Dann kannst du mit dem Button "Einstellungen anzeigen" schauen was es schreibt.
In diesem Falle z.B.

Code: Alles auswählen

-MObjFPC -Scgi -O1 -gl -WG -vewnhi -l -Fi/ -Fl/opt/gnome/lib/ -Fu/home/theo/lazarus/26SVN/lcl/units/i386-linux/ -Fu/home/theo/lazarus/26SVN/lcl/units/i386-linux/gtk2/ -Fu/home/theo/lazarus/26SVN/packager/units/i386-linux/ -Fu. -dTest -dLCL -dLCLgtk2
So ähnlich auch für Packages.

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: $define / wo einstellen?

Beitrag von wolf_z »

Ahhh so! Vielen Dank!

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: $define / wo einstellen?

Beitrag von theo »

Irgenwie kapier ich aber nicht so ganz, warum du das tust.
Win32 müsste eigentlich sowieso definiert sein auf Win32
http://www.freepascal.org/docs-html/pro ... 23-323000G" onclick="window.open(this.href);return false;

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: $define / wo einstellen?

Beitrag von wolf_z »

Weil ich das Lazarus für x86_64-win64 und nicht für x86_64-win32 installiert habe. Ich hab auch nur die Units für C:\lazarus\lcl\units\x86_64-win64 und C:\lazarus\fpc\2.2.2\units\x86_64-win64. Die synapse Sourcen enthalten aber nur WIN32 - Switches. Wenn ich also für WIN32 compilieren will, muss ich zumindest den WIN32 Switch setzen.

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: $define / wo einstellen?

Beitrag von theo »

wolf_z hat geschrieben:Wenn ich also für WIN32 compilieren will, muss ich zumindest den WIN32 Switch setzen.
oder die {$IFDEF WIN32} mit {$IFDEF MSWINDOWS} ersetzen.

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: $define / wo einstellen?

Beitrag von wolf_z »

Hm, hätte das denn irgendwelche Vorteile? Ich müsste dann ja alle meine Fremd-Sourcen wie z.B. Synapse alle durchgehen und dort ersetzen. Das sind ja teilweise riesige Bibliotheken.

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: $define / wo einstellen?

Beitrag von theo »

wolf_z hat geschrieben:Hm, hätte das denn irgendwelche Vorteile? Ich müsste dann ja alle meine Fremd-Sourcen wie z.B. Synapse alle durchgehen und dort ersetzen. Das sind ja teilweise riesige Bibliotheken.
Synapse sollte FPC kompatibel sein, also da ist es nicht nötig, eher wohl schädlich sowas selber zu definieren.

Antworten