В этом приложении описываются возможные определения при компиляции программ, использующих Free Pascal. Приведены краткие описания определений, а затем также описано его использование.
Таблица G.1. Возможные определения при компиляции с использованием FPC.
Определение
|
Описание
|
FPC_LINK_DYNAMIC
|
Определено, если выход будет связан динамически. Определяется с помощью переключателя компилятора -XD.
|
FPC_LINK_STATIC
|
Определено, если выход будет скомпонован статически. Это значение по умолчанию.
|
FPC_LINK_SMART
|
Определено, если выход с «умной компоновкой». Определено, если использован переключатель компилятора -XX.
|
FPC_PROFILE
|
Определено, если профилирующий код добавлен в программу. Определено, если использован переключатель компилятора ‑pg.
|
FPC_CROSSCOMPILING
|
Определено, если целевые ОС/процессор отличаются от исходных ОС/процессора.
|
FPC
|
Всегда определено для Free Pascal.
|
VER2
|
Всегда определено для Free Pascal версии 2.x.x.
|
VER2_0
|
Всегда определено для Free Pascal версии 2.0.x.
|
VER2_2
|
Всегда определено для Free Pascal версии 2.2.x.
|
FPC_VERSION
|
Содержит сташий номер версии FPC.
|
FPC_RELEASE
|
Содержит младший номер версии FPC.
|
FPC_PATCH
|
Содержит третью часть номера версии FPC.
|
FPC_FULLVERSION
|
Содержит весь номер версии FPC (как единый номер), который может использоваться для сравнения. Для FPC 2.2.4 он будет 20204.
|
ENDIAN_LITTLE
|
Определено, если целевой процессор Free Pascal имеет прямой порядок байтов (80x86, Alpha, ARM ).
|
ENDIAN_BIG
|
Определено, если целевой процессор Free Pascal имеет обратный порядок байтов (680x0, PowerPC, SPARC, MIPS ).
|
FPC_DELPHI
|
Free Pascal в режиме Delphi, либо используется переключатель компилятора -MDelphi или директива $MODE DELPHI.
|
FPC_OBJFPC
|
Free Pascal в режиме OBJFPC, либо используется переключатель компилятора -Mobjfpc или директива $MODE OBJFPC.
|
FPC_TP
|
Free Pascal в режиме Turbo Pascal, либо используется переключатель компилятора -Mtp или директива $MODE TP.
|
FPC_GPC
|
Free Pascal в режиме GNU Pascal, либо используется переключатель компилятора -SP или директива $MODE GPC.
|
ПРИМЕЧАНИЕ
Определения ENDIAN_LITTLE и ENDIAN_BIG добавлены, начиная с версии Free Pascal 1.0.5.
|
Таблица G.2. Возможные определения процессора (CPU) при компиляции с использованием FPC.
Определение
|
Когда определено
|
CPU86
|
Free Pascal целевой процессор Intel 80x86 или совместимый.
|
CPU87
|
Free Pascal целевой процессор Intel 80x86 или совместимый.
|
CPU386
|
Free Pascal целевой процессор Intel 80386 или старше.
|
CPUI386
|
Free Pascal целевой процессор Intel 80386 или старше.
|
CPU68K
|
Free Pascal целевой процессор Motorola 680x0 или совместимый.
|
CPUM68K
|
Free Pascal целевой процессор Motorola 680x0 или совместимый.
|
CPUM68020
|
Free Pascal целевой процессор Motorola 68020 или старше.
|
CPU68
|
Free Pascal целевой процессор Motorola 680x0 или совместимый.
|
CPUSPARC32
|
Free Pascal целевой процессор SPARC v7 или совместимый.
|
CPUSPARC
|
Free Pascal целевой процессор SPARC v7 или совместимый.
|
CPUALPHA
|
Free Pascal целевой процессор Alpha AXP или совместимый.
|
CPUPOWERPC
|
Free Pascal целевой процессор 32-битный или 64-битный PowerPC или совместимый.
|
CPUPOWERPC32
|
Free Pascal целевой процессор 32-битный PowerPC или совместимый.
|
CPUPOWERPC64
|
Free Pascal целевой процессор 64-битный PowerPC или совместимый.
|
CPUX86_64
|
Free Pascal целевой процессор AMD64 или Intel 64-битный.
|
CPUAMD64
|
Free Pascal целевой процессор AMD64 или Intel 64-битный.
|
CPUX64
|
Free Pascal целевой процессор AMD64 или Intel 64-битный.
|
CPUIA64
|
Free Pascal целевой процессор Intel itanium 64-битный.
|
CPUARM
|
Free Pascal целевой процессор ARM 32-битный.
|
CPUAVR
|
Free Pascal целевой процессор AVR 16-битный.
|
CPU16
|
Free Pascal целевой процессор 16-битный.
|
CPU32
|
Free Pascal целевой процессор 32-битный.
|
CPU64
|
Free Pascal целевой процессор 64-битный.
|
CPU8086
|
указывает на 16-битную платформу на процессоре x86 (i8086)
|
CPUI8086
|
указывает на 16-битную платформу на процессоре x86 (i8086)
|
Таблица G.3. Возможные определения плавающей точки (FPU) при компиляции с использованием FPC.
Определение
|
Когда определено
|
FPUSOFT
|
Программная эмуляция FPU (все типы).
|
FPUSSE64
|
SSE64 FPU на Intel I386 и выше, AMD64.
|
FPUSSE
|
SSE инструкции на Intel I386 и выше.
|
FPUSSE2
|
SSE 2 инструкции на Intel I386 и выше.
|
FPUSSE3
|
SSE 3 инструкции на Intel I386 и выше, AMD64.
|
FPULIBGCC
|
GCC библиотека эмуляции FPU на ARM и M68K.
|
FPU68881
|
68881 на M68K.
|
FPUFPA
|
FPA на ARM.
|
FPUFPA10
|
FPA 10 на ARM.
|
FPUFPA11
|
FPA 11 на ARM.
|
FPUVFP
|
VFP на ARM.
|
FPUX87
|
X87 FPU на Intel I386 и выше.
|
FPUITANIUM
|
На Intel Itanium.
|
FPUSTANDARD
|
На PowerPC (32/64 bit).
|
FPUHARD
|
На Sparc.
|
Таблица G.4. Возможные определения компиляции с целевой ОС.
Целевая ОС
|
Определение
|
linux
|
LINUX, UNIX
|
freebsd
|
FREEBSD, BSD, UNIX
|
netbsd
|
NETBSD, BSD, UNIX
|
sunos
|
SUNOS, SOLARIS, UNIX
|
go32v2
|
GO32V2, DPMI
|
реальный режим 16 бит
MS-DOS
|
MSDOS (2.7.1 и выше)
|
os2
|
OS2
|
emx
|
OS2, EMX
|
Windows (all)
|
WINDOWS
|
Windows 32-bit
|
WIN32, MSWINDOWS
|
Windows 64-bit
|
WIN64, MSWINDOWS
|
Windows (winCE)
|
WINCE, UNDER_CE, UNICODE
|
Classic Amiga
|
AMIGA
|
Atari TOS
|
ATARI
|
Classic Macintosh
|
MACOS
|
PalmOS
|
PALMOS
|
BeOS
|
BEOS, UNIX
|
QNX RTP
|
QNX, UNIX
|
Mac OS X
|
BSD, DARWIN, UNIX
|
В 16 битной модели памяти MS-DOS, для компиляции программы, используется одно из FPC_MM_TINY, FPC_MM_SMALL,FPC_MM_MEDIUM, FPC_MM_COMPACT,FPC_MM_LARGE, FPC_MM_HUGE.
ПРИМЕЧАНИЕ
Определение UNIX было добавлено, начиная с версии Free Pascal 1.0.5. Операционные системы BSD больше не определяют LINUX, начиная с версии 1.0.7.
|
|