ich habe ein Programm erstellt, welches sowohl unter Windows (in der Win-compilierten Version) als auch unter Linux (in der Linux-compilierten Version) laufen soll.
Wobei jeweils (Win/Linux) der gleiche Quellcode verwendet wird.
Nun sind ein paar Dinge unterschiedlich bei Windows und Linux: z.b. backslash statt slash bei Directories.
Kann ich at runtime in meinem Programm erkennen, ob es unter Windows oder Linux läuft ?
Oder gibt es einen Compilerswitch (z.B. if $Windows then...) ?
Denn ich möchte keinesfalls verschiedenen Quellcode für Windows oder Linux haben.
Runtime Erkennung ob Windows oder Linux
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Runtime Erkennung ob Windows oder Linux
Also statischer Compilerswitch:malabarista hat geschrieben:ich habe ein Programm erstellt, welches sowohl unter Windows (in der Win-compilierten Version) als auch unter Linux (in der Linux-compilierten Version) laufen soll.
Wobei jeweils (Win/Linux) der gleiche Quellcode verwendet wird.
Nun sind ein paar Dinge unterschiedlich bei Windows und Linux: z.b. backslash statt slash bei Directories.
Kann ich at runtime in meinem Programm erkennen, ob es unter Windows oder Linux läuft ?
Oder gibt es einen Compilerswitch (z.B. if $Windows then...) ?
Denn ich möchte keinesfalls verschiedenen Quellcode für Windows oder Linux haben.
Code: Alles auswählen
{$IFDEF UNIX}
{$ENDIF}
Wenn du es wirklich zur laufzeit brauchst versuch doch mit
Code: Alles auswählen
if PathDelim = '/' then // Unix
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
Re: Runtime Erkennung ob Windows oder Linux
Das sind jetzt drei gute Tipps auf einmal. Dankeschön !
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Runtime Erkennung ob Windows oder Linux
Da die für Linux übersetzte Version nicht auf Windows läuft und umgekehrt ist der statische {$if Switch immer die richtige Wahl.
-Michael
-Michael