Sign in Join
Wiki copytemporary

Conditional compilation/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Conditional compilation/de

OldNewLine
1+Zurück zum Thema [[using conditionals messages macros/de|Verwendung von Bedingungen, Nachrichten und Makros]].
2+
3+# Bedingte Compilierung
4+
5+Die <b>bedingte Compilierung</b> bestimmt, welche Teile des Quellcodes in das fertige Programm aufgenommen werden.\
6+Die <b>bedingte Compilierung</b> bestimmt, ob ein Abschnitt compiliert wird und damit Bestandteil des fertigen Programms wird.\
7+Der Abschnitt, der nicht compiliert wird, wird auch nicht Bestandteil des fertigen Programms.\
8+Die <b>bedingte Compilierung</b> basiert auf der Existenz (Vorhandensein) von Konstanten, dem Status von Compiler Direktiven und der Definition von selbst definierten Symbolen.
9+
10+# Selbst definierte Symbole
11+
12+Selbst definierte Symbole gelten ab der Stelle ab der sie deklariert werden bis zu der Stelle an der ihre deklaration aufgehoben wird.\
13+Wird die Deklaration der selbst definierten Symbole nicht aufgehoben, gilt die Deklaration der selbstdefinierten Symbole bis zum Ende der Unit.\
14+\
15+Beispiel 1: Anlegen eines selbstdefinierten Symbols:\
16+
17+``` pascal
18+{$define MeinSymbol} // definiert ein Symbol
19+... // der Bereich, in dem das selbstdefinierte Symbol gültig ist
20+{$undef MeinSymbol} // hebt die Definition des Symbols wieder auf
21+```
22+
23+\
24+Beispiel 2: Anlegen und abfragen eines selbstdefinierten Symbols:\
25+
26+``` pascal
27+...
28+{$define MeinSymbol} // definiert ein Symbol
29+ ...
30+ {$ifdef MeinSymbol} // Fragt die Existenz des selbst definierten Symbols ab und compiliert den IF-Zweig
31+ ...;
32+ {$else} // der Else-Zweig wird nicht compiliert
33+ ...;
34+ {$endif}
35+ ...
36+{$undef MeinSymbol} // hebt die Definition des selbstdefinierten Symbols wieder auf,
37+ // damit ist das selbstdefinierte Symbol nicht mehr vorhanden
38+...
39+```
40+
41+\
42+Beispiel 3: Abfragen eines nicht vorhandenen selbstdefinierten Symbols:\
43+
44+``` pascal
45+// da das selbstdefinierte Symbol hier nicht definiert (vorhanden) ist, wird in diesem Fall der Sonst-Zweig (Else-Zweig) compiliert
46+// das heisst, wenn ein selbstdefiniertes Symbol nicht vorhanden ist, kommt vom Compiler keine Fehlermeldung
47+// und es wird soweit vorhanden der Else-Zweig compiliert, bzw. wenn der Else-Zweig nicht vorhanden ist wird nichts compiliert
48+...
49+ {$ifdef MeinSymbol} // Fragt die Existenz des selbst definierten Symbols ab und compiliert den Else-Zweig
50+ ...;
51+ {$else} // compiliert den Else-Zweig
52+ ...;
53+ {$endif}
54+...
55+```
56+
57+\
58+Beispiel 4: Abfragen, ob es sich um eine Intel/AMD 32/64Bit CPU handelt:\
59+
60+``` pascal
61+...
62+ {$if defined(cpux86_64) or defined(cpux86)}
63+ ...; // Intel/AMD-CPU
64+ {$else}
65+ ...; // Es ist keine PC-CPU, zB. ARM (Raspberry)
66+ {$endif}
67+...
68+```
69+
70+\
71+
72+# Vordefinierte Symbole
73+
74+Vordefinierte Symbole (predefined symbols) werden im Gegensatz zu selbstdefinierten Symbolen vom Compiler erstellt.\
75+Das Erstellen der vordefinierten Symbole (predefined symbols) hängt von bestimmten Bedingungen wie Compilereinstellung, Prozessor usw. ab.\
76+Das heißt, das nicht alle vordefinierten Symbole gleichzeitig existieren (vorkommen) können.\
77+Vordefinierte Symbole (predefined symbols) gelten im Gegensatz zu selbstdefinierten Symbolen global, d. h. sie gelten für das gesamte Programm.\
78+Vordefinierte Symbole (predefined symbols) werden wie selbstdefinerte Symbole verwendet.\
79+\
80+Liste der vordefinieten Symbole:\
81+Diese Symbole können beim compilieren vom Compiler definert werden.\
82+Das heisst, das während des
83+
84+Diese Liste vordefinierter Symbole werden <b>möglicherweise</b> beim compilieren gesetzt.\
85+Das heisst, diese Symbole können möglicherweise nicht existieren (vorkommen).\
86+
87+<table border="1">
88+
89+<tr>
90+
91+<td>
92+
93+Symbol
94+
95+</td>
96+
97+<td>
98+
99+Beschreibung
100+
101+</td>
102+
103+</tr>
104+
105+<tr>
106+
107+<td>
108+
109+FPC_LINK_DYNAMIC
110+
111+</td>
112+
113+<td>
114+
115+Das vordefinerte Symbol ist gesetzt, wenn das Programm mit dynamischem Linken erstellt wird.\
116+Das entspricht dem Compiler switch -XC.
117+
118+</td>
119+
120+</tr>
121+
122+<tr>
123+
124+<td>
125+
126+FPC_LINK_STATIC
127+
128+</td>
129+
130+<td>
131+
132+Das vordefinerte Symbol ist gesetzt, wenn das Programm statisch gelinkt wird.\
133+Das ist die Standardeinstellung.
134+
135+</td>
136+
137+</tr>
138+
139+<tr>
140+
141+<td>
142+
143+FPC_LINK_SMART
144+
145+</td>
146+
147+<td>
148+
149+Das vordefinerte Symbol ist gesetzt, wenn das Programm smart gelinkt wird.\
150+Das entspricht dem Compiler switch -XX
151+
152+</td>
153+
154+</tr>
155+
156+<tr>
157+
158+<td>
159+
160+FPC_PROFILE
161+
162+</td>
163+
164+<td>
165+
166+Das vordefinerte Symbol ist gesetzt, wenn profiling code zum Programm hinzugefügt wird.\
167+Das entspricht dem Compiler switch -pg
168+
169+</td>
170+
171+</tr>
172+
173+<tr>
174+
175+<td>
176+
177+FPC_CROSSCOMPILING
178+
179+</td>
180+
181+<td>
182+
183+Das vordefinerte Symbol ist gesetzt, wenn das Zielbetriebsystem festgelegt wurde.
184+
185+</td>
186+
187+</tr>
188+
189+<tr>
190+
191+<td>
192+
193+FPC
194+
195+</td>
196+
197+<td>
198+
199+Das vordefinerte Symbol ist bei Free Pascal immer gesetzt.
200+
201+</td>
202+
203+</tr>
204+
205+<tr>
206+
207+<td>
208+
209+VER2
210+
211+</td>
212+
213+<td>
214+
215+Das vordefinerte Symbol ist bei Free Pascal Version 2.x.x immer gesetzt.
216+
217+</td>
218+
219+</tr>
220+
221+<tr>
222+
223+<td>
224+
225+VER2_0
226+
227+</td>
228+
229+<td>
230+
231+Das vordefinerte Symbol ist bei Free Pascal Version 2.0.x immer gesetzt.
232+
233+</td>
234+
235+</tr>
236+
237+<tr>
238+
239+<td>
240+
241+VER2_2
242+
243+</td>
244+
245+<td>
246+
247+Das vordefinerte Symbol ist bei Free Pascal Version 2.2.x immer gesetzt.
248+
249+</td>
250+
251+</tr>
252+
253+<tr>
254+
255+<td>
256+
257+FPC_VERSION
258+
259+</td>
260+
261+<td>
262+
263+Enthält die Hauptversionsnummer von FPC.
264+
265+</td>
266+
267+</tr>
268+
269+<tr>
270+
271+<td>
272+
273+FPC_RELEASE
274+
275+</td>
276+
277+<td>
278+
279+Enthält die Unterversionsnummer von FPC.
280+
281+</td>
282+
283+</tr>
284+
285+<tr>
286+
287+<td>
288+
289+FPC_PATCH
290+
291+</td>
292+
293+<td>
294+
295+Enthält die Revisionsnummer von FPC.
296+
297+</td>
298+
299+</tr>
300+
301+<tr>
302+
303+<td>
304+
305+FPC_FULLVERSION
306+
307+</td>
308+
309+<td>
310+
311+Enthält die vollständige Versionsnummer als Ganzzahl.\
312+Für FPC 2.6.0 ist der Wert 20600.
313+
314+</td>
315+
316+</tr>
317+
318+<tr>
319+
320+<td>
321+
322+ENDIAN_LITTLE
323+
324+</td>
325+
326+<td>
327+
328+Das vordefinerte Symbol ist gesetzt, wenn das Ziel ein [[Glossary/de|little-endian]] Prozessor ist(80x86, Alpha, ARM, MIPS little endian).\
329+Die Begriffe Little-Endian und Big-Endian bezeichnen bei Prozessoren die Speicherorganisation für einfache Zahlenwerte.
330+
331+</td>
332+
333+</tr>
334+
335+<tr>
336+
337+<td>
338+
339+ENDIAN_BIG
340+
341+</td>
342+
343+<td>
344+
345+Das vordefinerte Symbol ist gesetzt, wenn das Ziel ein [[Glossary/de|big-endian]] Prozessor ist (680x0, PowerPC, SPARC, MIPS big endian).\
346+Die Begriffe Little-Endian und Big-Endian bezeichnen bei Prozessoren die Speicherorganisation für einfache Zahlenwerte.
347+
348+</td>
349+
350+</tr>
351+
352+<tr>
353+
354+<td>
355+
356+FPC_DELPHI
357+
358+</td>
359+
360+<td>
361+
362+Free Pascal arbeitet im Delphi-Modus.\
363+Das entspricht dem Compiler switch -MDelphi bzw. dem Compilermodus \$MODE DELPHI)
364+
365+</td>
366+
367+</tr>
368+
369+<tr>
370+
371+<td>
372+
373+FPC_OBJFPC
374+
375+</td>
376+
377+<td>
378+
379+Free Pascal arbeitet im OBJFPC-Modus.\
380+Das entspricht dem Compiler switch -Mobjfpc bzw. dem Compilermodus \$MODE OBJFPC)
381+
382+</td>
383+
384+</tr>
385+
386+<tr>
387+
388+<td>
389+
390+FPC_TP
391+
392+</td>
393+
394+<td>
395+
396+Free Pascal arbeitet im Turbopascal-Modus.\
397+Das entspricht dem Compiler switch -Mtp bzw. dem Compilermodus \$MODE TP)
398+
399+</td>
400+
401+</tr>
402+
403+<tr>
404+
405+<td>
406+
407+FPC_GPC
408+
409+</td>
410+
411+<td>
412+
413+Free Pascal arbeitet im GNU Pascal-Modus.\
414+Das entspricht dem Compiler switch -SP bzw. dem Compilermodus \$MODE GPC)
415+
416+</td>
417+
418+</tr>
419+
420+</table>
421+
422+\
423+\
424+Folgende CPU-Typen können beim compilieren vom Compiler gesetzt werden.\
425+\
426+
427+<table border="1">
428+
429+<tr>
430+
431+<td>
432+
433+Symbol
434+
435+</td>
436+
437+<td>
438+
439+Beschreibung
440+
441+</td>
442+
443+</tr>
444+
445+<tr>
446+
447+<td>
448+
449+CPU86
450+
451+</td>
452+
453+<td>
454+
455+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Intel80x86 oder kompatibler Prozessor ist.
456+
457+</td>
458+
459+</tr>
460+
461+<tr>
462+
463+<td>
464+
465+CPU87
466+
467+</td>
468+
469+<td>
470+
471+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Intel80x87 oder kompatibler Prozessor ist.
472+
473+</td>
474+
475+</tr>
476+
477+<tr>
478+
479+<td>
480+
481+CPU386
482+
483+</td>
484+
485+<td>
486+
487+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Intel386 oder ein späterer Prozessortyp ist.
488+
489+</td>
490+
491+</tr>
492+
493+<tr>
494+
495+<td>
496+
497+CPU68K
498+
499+</td>
500+
501+<td>
502+
503+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Motorola 680x0 oder kompatibler Prozessor ist.
504+
505+</td>
506+
507+</tr>
508+
509+<tr>
510+
511+<td>
512+
513+CPUM68020
514+
515+</td>
516+
517+<td>
518+
519+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Motorola 68020 oder ein späterer Prozessortyp ist.
520+
521+</td>
522+
523+</tr>
524+
525+<tr>
526+
527+<td>
528+
529+CPU68
530+
531+</td>
532+
533+<td>
534+
535+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Motorola 680x0 oder kompatibler Prozessor ist.
536+
537+</td>
538+
539+</tr>
540+
541+<tr>
542+
543+<td>
544+
545+CPUSPARC32
546+
547+</td>
548+
549+<td>
550+
551+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein SPARC v7 oder kompatibler Prozessor ist.
552+
553+</td>
554+
555+</tr>
556+
557+<tr>
558+
559+<td>
560+
561+CPUSPARC
562+
563+</td>
564+
565+<td>
566+
567+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein SPARC v7 oder kompatibler Prozessor ist.
568+
569+</td>
570+
571+</tr>
572+
573+<tr>
574+
575+<td>
576+
577+CPUALPHA
578+
579+</td>
580+
581+<td>
582+
583+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Alpha AXP oder kompatibler Prozessor ist.
584+
585+</td>
586+
587+</tr>
588+
589+<tr>
590+
591+<td>
592+
593+CPUPOWERPC
594+
595+</td>
596+
597+<td>
598+
599+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 32-bit or 64-bit PowerPC oder kompatibler Prozessor ist.
600+
601+</td>
602+
603+</tr>
604+
605+<tr>
606+
607+<td>
608+
609+CPUPOWERPC32
610+
611+</td>
612+
613+<td>
614+
615+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 32-bit PowerPC oder kompatibler Prozessor ist.
616+
617+</td>
618+
619+</tr>
620+
621+<tr>
622+
623+<td>
624+
625+CPUPOWERPC64
626+
627+</td>
628+
629+<td>
630+
631+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 64-bit PowerPC oder kompatibler Prozessor ist.
632+
633+</td>
634+
635+</tr>
636+
637+<tr>
638+
639+<td>
640+
641+CPUX86
642+
643+</td>
644+
645+<td>
646+
647+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein AMD64 oder Intel 32-bit Prozessor ist.
648+
649+</td>
650+
651+</tr>
652+
653+<tr>
654+
655+<td>
656+
657+CPUX86_64
658+
659+</td>
660+
661+<td>
662+
663+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein AMD64 oder Intel 64-bit Prozessor ist.
664+
665+</td>
666+
667+</tr>
668+
669+<tr>
670+
671+<td>
672+
673+CPUAMD64
674+
675+</td>
676+
677+<td>
678+
679+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein AMD64 oder Intel 64-bit Prozessor ist.
680+
681+</td>
682+
683+</tr>
684+
685+<tr>
686+
687+<td>
688+
689+CPUIA64
690+
691+</td>
692+
693+<td>
694+
695+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein Intel Itanium 64-bit Prozessor ist.
696+
697+</td>
698+
699+</tr>
700+
701+<tr>
702+
703+<td>
704+
705+CPUARM
706+
707+</td>
708+
709+<td>
710+
711+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein ARM 32-bit Prozessor ist.
712+
713+</td>
714+
715+</tr>
716+
717+<tr>
718+
719+<td>
720+
721+CPUAVR
722+
723+</td>
724+
725+<td>
726+
727+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 8/16Bit AVR.
728+
729+</td>
730+
731+</tr>
732+
733+<tr>
734+
735+<td>
736+
737+CPU16
738+
739+</td>
740+
741+<td>
742+
743+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 16-bit Prozessor ist.
744+
745+</td>
746+
747+</tr>
748+
749+<tr>
750+
751+<td>
752+
753+CPU32
754+
755+</td>
756+
757+<td>
758+
759+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 32-bit Prozessor ist.
760+
761+</td>
762+
763+</tr>
764+
765+<tr>
766+
767+<td>
768+
769+CPU64
770+
771+</td>
772+
773+<td>
774+
775+Das vordefinerte Symbol ist gesetzt, wenn der Zielprozessor ein 64-bit Prozessor ist.
776+
777+</td>
778+
779+</tr>
780+
781+</table>
782+
783+\
784+\
785+Folgende Fliesskomma-Einheiten können beim compilieren vom Compiler gesetzt werden.\
786+
787+<table border="1">
788+
789+<tr>
790+
791+<td>
792+
793+Symbol
794+
795+</td>
796+
797+<td>
798+
799+Beschreibung
800+
801+</td>
802+
803+</tr>
804+
805+<tr>
806+
807+<td>
808+
809+FPUSOFT
810+
811+</td>
812+
813+<td>
814+
815+Softwareemulation der Fliesskommaeinheit (betrifft alle CPU Typen).
816+
817+</td>
818+
819+</tr>
820+
821+<tr>
822+
823+<td>
824+
825+FPUSSE64
826+
827+</td>
828+
829+<td>
830+
831+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine SSE64 FPU oder höher oder AMD64 ist.
832+
833+</td>
834+
835+</tr>
836+
837+<tr>
838+
839+<td>
840+
841+FPUSSE
842+
843+</td>
844+
845+<td>
846+
847+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine SSE-Einheit auf einem Intel386 Prozessor und höher ist.
848+
849+</td>
850+
851+</tr>
852+
853+<tr>
854+
855+<td>
856+
857+FPUSSE2
858+
859+</td>
860+
861+<td>
862+
863+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine SSE2-Einheit auf einem Intel386 Prozessor und höher ist.
864+
865+</td>
866+
867+</tr>
868+
869+<tr>
870+
871+<td>
872+
873+FPUSSE3
874+
875+</td>
876+
877+<td>
878+
879+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine SSE3-Einheit auf einem Intel386 Prozessor und höher ist.
880+
881+</td>
882+
883+</tr>
884+
885+<tr>
886+
887+<tr>
888+
889+<td>
890+
891+FPULIBGCC
892+
893+</td>
894+
895+<td>
896+
897+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine Emulation mittels GCC-Bibliothek auf einem ARM oder einem M86K Prozessor ist.
898+
899+</td>
900+
901+</tr>
902+
903+<tr>
904+
905+<td>
906+
907+FPU68881
908+
909+</td>
910+
911+<td>
912+
913+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit ein 68881 aufeinem M68K Prozessor ist.
914+
915+</td>
916+
917+</tr>
918+
919+<tr>
920+
921+<td>
922+
923+FPUFPA
924+
925+</td>
926+
927+<td>
928+
929+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine FPA auf einem ARM Prozessor ist.
930+
931+</td>
932+
933+</tr>
934+
935+<tr>
936+
937+<td>
938+
939+FPUFPA10
940+
941+</td>
942+
943+<td>
944+
945+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine FPA 10 auf einem ARM Prozessorist.
946+
947+</td>
948+
949+</tr>
950+
951+<tr>
952+
953+<td>
954+
955+FPUFPA11
956+
957+</td>
958+
959+<td>
960+
961+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine FPA 11 auf einem ARM Prozessor ist.
962+
963+</td>
964+
965+</tr>
966+
967+<tr>
968+
969+<td>
970+
971+FPUVFP
972+
973+</td>
974+
975+<td>
976+
977+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine VFP auf einem ARM Prozessor ist.
978+
979+</td>
980+
981+</tr>
982+
983+<tr>
984+
985+<td>
986+
987+FPUX87
988+
989+</td>
990+
991+<td>
992+
993+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit eine x87 auf einem Intel386 Prozessor oder höher ist.
994+
995+</td>
996+
997+</tr>
998+
999+<tr>
1000+
1001+<td>
1002+
1003+FPUITANIUM
1004+
1005+</td>
1006+
1007+<td>
1008+
1009+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit auf einem Intel Itanium Prozessor ist.
1010+
1011+</td>
1012+
1013+</tr>
1014+
1015+<tr>
1016+
1017+<td>
1018+
1019+FPUSTANDARD
1020+
1021+</td>
1022+
1023+<td>
1024+
1025+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit auf einem PowerPC (32/64 bit) Prozessor ist.
1026+
1027+</td>
1028+
1029+</tr>
1030+
1031+<tr>
1032+
1033+<td>
1034+
1035+FPUHARD
1036+
1037+</td>
1038+
1039+<td>
1040+
1041+Das vordefinerte Symbol ist gesetzt, wenn die Fliesskommaeinheit auf einem Sparc Prozessor ist.
1042+
1043+</td>
1044+
1045+</tr>
1046+
1047+</table>
1048+
1049+\
1050+Folgende Betriebssystemsymbole können beim compilieren vom Compiler gesetzt werden.\
1051+
1052+<table border="1">
1053+
1054+<tr>
1055+
1056+<td>
1057+
1058+Zielbetriebssystem
1059+
1060+</td>
1061+
1062+<td>
1063+
1064+Symbol(e)
1065+
1066+</td>
1067+
1068+</tr>
1069+
1070+<tr>
1071+
1072+<td>
1073+
1074+linux
1075+
1076+</td>
1077+
1078+<td>
1079+
1080+LINUX, UNIX
1081+
1082+</td>
1083+
1084+</tr>
1085+
1086+<tr>
1087+
1088+<td>
1089+
1090+freebsd
1091+
1092+</td>
1093+
1094+<td>
1095+
1096+FREEBSD, BSD, UNIX
1097+
1098+</td>
1099+
1100+</tr>
1101+
1102+<tr>
1103+
1104+<td>
1105+
1106+netbsd
1107+
1108+</td>
1109+
1110+<td>
1111+
1112+NETBSD, BSD, UNIX
1113+
1114+</td>
1115+
1116+</tr>
1117+
1118+<tr>
1119+
1120+<td>
1121+
1122+sunos
1123+
1124+</td>
1125+
1126+<td>
1127+
1128+SUNOS, SOLARIS, UNIX
1129+
1130+</td>
1131+
1132+</tr>
1133+
1134+<tr>
1135+
1136+<td>
1137+
1138+go32v2 (Erweiterung für DOS)
1139+
1140+</td>
1141+
1142+<td>
1143+
1144+GO32V2, DPMI
1145+
1146+</td>
1147+
1148+</tr>
1149+
1150+<tr>
1151+
1152+<td>
1153+
1154+os2
1155+
1156+</td>
1157+
1158+<td>
1159+
1160+OS2
1161+
1162+</td>
1163+
1164+</tr>
1165+
1166+<tr>
1167+
1168+<td>
1169+
1170+emx (Erweiterung für DOS, OS2)
1171+
1172+</td>
1173+
1174+<td>
1175+
1176+OS2, EMX
1177+
1178+</td>
1179+
1180+</tr>
1181+
1182+<tr>
1183+
1184+<td>
1185+
1186+Windows (alle Versionen)
1187+
1188+</td>
1189+
1190+<td>
1191+
1192+WINDOWS
1193+
1194+</td>
1195+
1196+</tr>
1197+
1198+<tr>
1199+
1200+<td>
1201+
1202+Windows 32-bit
1203+
1204+</td>
1205+
1206+<td>
1207+
1208+WIN32, MSWINDOWS
1209+
1210+</td>
1211+
1212+</tr>
1213+
1214+<tr>
1215+
1216+<td>
1217+
1218+Windows 64-bit
1219+
1220+</td>
1221+
1222+<td>
1223+
1224+WIN64, MSWINDOWS
1225+
1226+</td>
1227+
1228+</tr>
1229+
1230+<tr>
1231+
1232+<td>
1233+
1234+Windows (winCE)
1235+
1236+</td>
1237+
1238+<td>
1239+
1240+WINCE, UNDER_CE, UNICODE
1241+
1242+</td>
1243+
1244+</tr>
1245+
1246+<tr>
1247+
1248+<td>
1249+
1250+Classic Amiga
1251+
1252+</td>
1253+
1254+<td>
1255+
1256+AMIGA
1257+
1258+</td>
1259+
1260+</tr>
1261+
1262+<tr>
1263+
1264+<td>
1265+
1266+Atari TOS
1267+
1268+</td>
1269+
1270+<td>
1271+
1272+ATARI
1273+
1274+</td>
1275+
1276+</tr>
1277+
1278+<tr>
1279+
1280+<td>
1281+
1282+Classic Macintosh
1283+
1284+</td>
1285+
1286+<td>
1287+
1288+MAC
1289+
1290+</td>
1291+
1292+</tr>
1293+
1294+<tr>
1295+
1296+<td>
1297+
1298+PalmOS
1299+
1300+</td>
1301+
1302+<td>
1303+
1304+PALMOS
1305+
1306+</td>
1307+
1308+</tr>
1309+
1310+<tr>
1311+
1312+<td>
1313+
1314+PalmOS
1315+
1316+</td>
1317+
1318+<td>
1319+
1320+PALMOS
1321+
1322+</td>
1323+
1324+</tr>
1325+
1326+<tr>
1327+
1328+<td>
1329+
1330+BeOS
1331+
1332+</td>
1333+
1334+<td>
1335+
1336+BEOS, UNIX
1337+
1338+</td>
1339+
1340+</tr>
1341+
1342+<tr>
1343+
1344+<td>
1345+
1346+QNX RTP
1347+
1348+</td>
1349+
1350+<td>
1351+
1352+QNX, UNIX
1353+
1354+</td>
1355+
1356+</tr>
1357+
1358+<tr>
1359+
1360+<td>
1361+
1362+Mac OS X
1363+
1364+</td>
1365+
1366+<td>
1367+
1368+BSD, DARWIN, UNIX
1369+
1370+</td>
1371+
1372+</tr>
1373+
1374+</table>
1375+
1376+---
1377+*From the Free Pascal wiki, page "Conditional compilation/de", as it stood on 2020-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history