Сравнительная таблица ПО    Уроки Free Pascal    Следующий урок   

Настройка конфигурации компилятора Free Pascal 3.2.2

Степень завершённости урока: 30%   

Статистика урока:

Настройки конфигурации компилятора Free Pascal 3.2.2 хранятся в файле fpc.cfg.

Исходный код ниже в значительной степени состоит из комментариев. Если вас интересует компактный исходный код без комментариев, смотрите второй блок кода.

CODE 279 строк | 7.5 KB
## Config file generated by fpcmkcfg on 15.11.2025 - 21:23:09# Example fpc.cfg for Free Pascal Compiler## ----------------------# Defines(preprocessor)# ----------------------## nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed## -d is the same as #DEFINE# -u is the same as #UNDEF### Some examples(for switches see below, and the -? helppages)## Try compiling with the -dRELEASE or -dDEBUG on the commandline## For a release compile with optimizes and strip debuginfo#IFDEF RELEASE  -O2  -Xs  #WRITE Compiling Release Version#ENDIF# For a debug version compile with debuginfo and all codegeneration checks on#IFDEF DEBUG  -gl  -Crtoi  #WRITE Compiling Debug Version#ELSE  # Strip debuginfo from the executable if not in debug mode  -Xs#ENDIF# assembling#ifdef darwin# use pipes instead of temporary files for assembling-ap#endif# ----------------# Parsing switches# ----------------# Pascal language mode#      -Mfpc      free pascal dialect(default)#      -Mobjfpc   switch some Delphi 2 extensions on#      -Mdelphi   tries to be Delphi compatible#      -Mtp       tries to be TP/BP 7.0 compatible#      -Mgpc      tries to be gpc compatible#      -Mmacpas   tries to be compatible to the macintosh pascal dialects## Turn on Object Pascal extensions by default#-Mobjfpc# Assembler reader mode#      -Rdefault  use default assembler#      -Ratt      read AT&T style assembler#      -Rintel    read Intel style assembler## All assembler blocks are AT&T styled by default#-Ratt# Semantic checking#      -S2        same as -Mobjfpc#      -Sc        supports operators like C(*=,+=,/= and -=)#      -Sa        include assertion code.#      -Sd        same as -Mdelphi#      -Se<x>     error options. <x> is a combination of the following:#         <n> : compiler stops after <n> errors(default is 1)#         w   : compiler stops also after warnings#         n   : compiler stops also after notes#         h   : compiler stops also after hints#      -Sg        allow LABEL and GOTO#      -Sh        Use ansistrings#      -Si        support C++ styled INLINE#      -Sk        load fpcylix unit#      -SI<x>     set interface style to <x>#         -SIcom    COM compatible interface (default)#         -SIcorba  CORBA compatible interface#      -Sm        support macros like C(global)#      -So        same as -Mtp#      -Sp        same as -Mgpc#      -Ss        constructor name must be init(destructor must be done)#      -Sx        enable exception keywords(default in Delphi/ObjFPC modes)## Allow goto, inline, C-operators, C-vars-Sgic# ---------------# Code generation# ---------------# Uncomment the next line if you always want static/dynamic units by default# (can be overruled with -CD, -CS at the commandline)#-CS#-CD# Set the default heapsize to 8Mb#-Ch8000000# Set default codegeneration checks(iocheck, overflow, range, stack)#-Ci#-Co#-Cr#-Ct# Optimizer switches# -Os        generate smaller code# -Oa=N      set alignment to N# -O1        level 1 optimizations(quick optimizations, debuggable)# -O2        level 2 optimizations(-O1 + optimizations which make debugging more difficult)# -O3        level 3 optimizations(-O2 + optimizations which also may make the program slower rather than faster)# -Oo<x>     switch on optimalization x. See fpc -i for possible values# -OoNO<x>   switch off optimalization x. See fpc -i for possible values# -Op<x>     set target cpu for optimizing, see fpc -i for possible values#ifdef darwin#ifdef cpui386-Cppentiumm-Oppentiumm#endif#endif# -----------------------# Set Filenames and Paths# -----------------------# Both slashes and backslashes are allowed in paths# path to the messagefile, not necessary anymore but can be used to override# the default language#-FrC:\lazarus\fpc\$FPCVERSION/msg/errore.msg#-FrC:\lazarus\fpc\$FPCVERSION/msg/errorn.msg#-FrC:\lazarus\fpc\$FPCVERSION/msg/errores.msg#-FrC:\lazarus\fpc\$FPCVERSION/msg/errord.msg#-FrC:\lazarus\fpc\$FPCVERSION/msg/errorr.msg# search path for unicode binary files(FPC 2.x does not know this switch)#ifndef VER2-FM/unicode/#endif# Search for $fpctarget/$fpcsubarch-$fpcmemorymodel/ subdirectory first# for i8086 CPU#ifdef cpui8086-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/*-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl#endif# searchpath for units and other system dependent things-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/*-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/rtl#IFDEF FPCAPACHE_1_3-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd13/#ELSE#IFDEF FPCAPACHE_2_0-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd20#ELSE-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd22#ENDIF#ENDIF# searchpath for fppkg user-specific packages-Fu$LOCAL_APPDATA\FreePascal\fppkg/units/$FPCTARGET/*# searchpath for tools-FDC:\lazarus\fpc\$FPCVERSION/bin/$FPCTARGET# path to the gcclib# searchpath for libraries#-FlC:\lazarus\fpc\$FPCVERSION/lib#-Fl/lib;/usr/lib-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET#IFNDEF CPUI386#IFNDEF CPUAMD64#DEFINE NEEDCROSSBINUTILS#ENDIF#ENDIF#IFNDEF Win64#DEFINE NEEDCROSSBINUTILS#ENDIF# never need cross-prefix when targeting the JVM# (no native compiler, always cross-compiling)#ifdef cpujvm#undef NEEDCROSSBINUTILS#endif# for android cross-prefix is set by compiler#ifdef android#undef NEEDCROSSBINUTILS#endif# never need cross-prefix when targeting the i8086# (no native compiler, always cross-compiling)#ifdef cpui8086#undef NEEDCROSSBINUTILS#endif# never need cross-prefix when targeting the i8086# (no native compiler, always cross-compiling)#ifdef cpujvm#undef NEEDCROSSBINUTILS#endif# binutils prefix for cross compiling#IFDEF FPC_CROSSCOMPILING#IFDEF NEEDCROSSBINUTILS  -XP$FPCTARGET-#ENDIF#ENDIF# -------------# Linking# -------------# generate always debugging information for GDB(slows down the compiling# process)#      -gc        generate checks for pointers#      -gd        use dbx#      -gg        use gsym#      -gh        use heap trace unit(for memory leak debugging)#      -gl        use line info unit to show more info for backtraces#      -gv        generates programs tracable with valgrind#      -gw        generate dwarf debugging info## Enable debuginfo and use the line info unit by default#-gl# always pass an option to the linker#-k-s# Always use smartlinking on i8086, because the system unit exceeds the 64kb# code limit#ifdef cpui8086-CX-XX#endif# -------------# Miscellaneous# -------------# Write always a nice FPC logo ;)-l# Verbosity#      e : Show errors(default)       d : Show debug info#      w : Show warnings               u : Show unit info#      n : Show notes                  t : Show tried/used files#      h : Show hints                  s : Show time stamps#      i : Show general info           q : Show message numbers#      l : Show linenumbers            c : Show conditionals#      a : Show everything             0 : Show nothing(except errors)#      b : Write file names messages   r : Rhide/GCC compatibility mode#          with full path              x : Executable info(Win32 only)#      v : write fpcdebug.txt with     p : Write tree.log with parse tree#          lots of debugging info## Display Info, Warnings and Notes-viwn# If you don't want so much verbosity use#-vw

А вот так выглядит тот же файл без комментариев:

Pascal 97 строк | 1.5 KB
#IFDEF RELEASE  -O2  -Xs  #WRITE Compiling Release Version#ENDIF#IFDEF DEBUG  -gl  -Crtoi  #WRITE Compiling Debug Version#ELSE  -Xs#ENDIF#ifdef darwin-ap#endif-Sgic#ifdef darwin#ifdef cpui386-Cppentiumm-Oppentiumm#endif#endif#ifndef VER2-FM/unicode/#endif#ifdef cpui8086-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/*-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl#endif-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/*-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/rtl#IFDEF FPCAPACHE_1_3-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd13/#ELSE#IFDEF FPCAPACHE_2_0-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd20#ELSE-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd22#ENDIF#ENDIF-Fu$LOCAL_APPDATA\FreePascal\fppkg/units/$FPCTARGET/*-FDC:\lazarus\fpc\$FPCVERSION/bin/$FPCTARGET-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET#IFNDEF CPUI386#IFNDEF CPUAMD64#DEFINE NEEDCROSSBINUTILS#ENDIF#ENDIF#IFNDEF Win64#DEFINE NEEDCROSSBINUTILS#ENDIF#ifdef cpujvm#undef NEEDCROSSBINUTILS#endif#ifdef android#undef NEEDCROSSBINUTILS#endif#ifdef cpui8086#undef NEEDCROSSBINUTILS#endif#ifdef cpujvm#undef NEEDCROSSBINUTILS#endif#IFDEF FPC_CROSSCOMPILING#IFDEF NEEDCROSSBINUTILS  -XP$FPCTARGET-#ENDIF#ENDIF#ifdef cpui8086-CX-XX#endif-l-viwn


Предложить идею по улучшению урока в мессенджере Max или мессенджере Telegram

Сравнительная таблица ПО    Уроки Free Pascal    Следующий урок   

Страница обновлена 26 июля 2026 года.